Come reimpostare un seme di identità in Microsoft SQL

October 28

Come reimpostare un seme di identità in Microsoft SQL


Microsoft SQL Server supporta l'uso di una colonna IDENTITY per tabella. Una colonna IDENTITY fornisce un valore numerico che può essere usato come valore di chiave o di riferimento. colonne IDENTITY vengono incrementati automaticamente ogni volta che una nuova riga viene aggiunta alla tabella. Il valore IDENTITY inizia ad un valore fornito dall'utente, chiamato il seme, o 1 se non viene specificato alcun valore, e aumenta dell'importo fornito dall'utente, chiamato l'incremento, o 1 se non viene specificato alcun valore. Ripristino del valore di avviamento o di incremento della colonna IDENTITY richiede o far cadere la colonna e la creazione di uno nuovo o di troncare la tavola e l'esecuzione di DBCC CHECKIDENT.

istruzione

Eliminare e ricreare una colonna

1 Aprire una connessione al database desiderato utilizzando Microsoft SQL Server Management Studio o la vostra applicazione preferita.

2 Digitare una query per eliminare la colonna di identità esistente. Questo deve essere fatto prima di creare una nuova colonna di identità, perché ogni tabella può avere una sola colonna di identità. La sintassi è:

ALTER TABLE [nome_tabella] eliminare la colonna [nome_colonna]

Questo consente di rimuovere completamente la colonna IDENTITY corrente dalla tabella, causando la perdita di valori identitari esistenti. Se saranno necessari questi valori, devono essere sottoposti a backup o copiati in una fila non-identità prima.

3 Digitare ed eseguire una query per aggiungere una nuova colonna di identità. La sintassi è:

ALTER TABLE [nome_tabella] Aggiungi colonna [nome_colonna] IDENTITÀ ([seme], [incremento])

Fornire il punto di partenza desiderato per il seme e il valore di incremento per l'incremento. Questo creerà una nuova colonna senza saltato valori dei dati.

Utilizzando troncamento e DBCC CHECKIDENT

4 Aprire una connessione al database desiderato utilizzando Microsoft SQL Server Management Studio o la vostra applicazione preferita.

5 Troncare la tabella. Questo rimuove tutti i dati della tabella, in modo da essere sicuro che non ci sono dati che si desidera conservare. La sintassi è:

TRUNCATE [table_name]

6 Eseguire DBCC CHECKIDENT per modificare il valore del seme. Ciò non modifica il valore di incremento. I valori di incremento possono essere modificati solo con il metodo nella sezione 1. La sintassi per questo è:

DBCC CHECKIDENT ([table_name], RESEED, [new_seed])

Il nuovo valore del seme sarà il primo valore utilizzato quando si inserisce una nuova riga.

Consigli e avvertenze

  • valori di identità sono a volte utilizzati come chiavi primarie. Se esiste una relazione di chiave, i rapporti possono essere invalidate dalla reseeding colonna IDENTITY. Valutare i dati con attenzione prima di tentare questo.
  • I database che utilizzano la replica hanno preoccupazioni particolari legate alle colonne di identità. Fare riferimento alle risorse per ulteriori informazioni.
  • Tabella troncamento, come presentato nella sezione 2, rimuove completamente tutti i dati dalla tabella e non dovrebbe mai essere utilizzata se la tabella contiene dati importanti.