SQL Identity Insert

SQL Identity Insert
SQL Server zapewnia nam klauzulę tożsamości, która umożliwia tworzenie kolumn szeregowych lub automatycznych. Jeśli kolumna jest ustawiona jako kolumna tożsamości, jej wartości są generowane automatycznie, ponieważ nowe rekordy są dodawane do tabeli.

Zapewnia to możliwość posiadania unikalnego identyfikatora dla każdej kolumny bez ręcznej kontroli bazy danych.

Tożsamość SQL Server

W SQL Server możesz utworzyć kolumnę tożsamości, jak pokazano:

Utwórz Tabela Table_name (
kolumn_name INT tożsamość
);

Określona wartość kolumny powyżej jest automatycznie generowana po dodaniu nowego rekordu.

Rozważ prosty przykład pokazany poniżej:

Utwórz użytkowników tabeli (
id tożsamość,
Nazwa varchar (255)
);

W normalnych okolicznościach nie musimy określać wartości kolumny tożsamości podczas wstawienia danych. Jak wspomniano, wartość jest automatycznie generowana dla każdej wkładki rekordu, jak pokazano:

Wstaw do wartości użytkowników (nazwa) („Dorothy Michelle”);

Powyższe powinno wstawić rekord do tabeli z unikalną wartością dla kolumny identyfikatora. Na przykład:

Zauważ, że kolumna identyfikator zawiera wartość, nawet jeśli jej nie określliśmy? To jest moc kolumn tożsamości.

SQL Server zezwala na wstawkę tożsamości

Ale co, jeśli spróbujesz ręcznie dodać wartość kolumny tożsamości? Na przykład:

Wstaw do użytkowników (ID, Nazwa) Wartości (2, „Jeff Arty”);

Powyższe zapytanie zwróci błąd, jak pokazano:

SQL Server uniemożliwia jawne dodanie wartości do wkładki tożsamości.

Możemy to rozwiązać, umożliwiając funkcję Wkładki tożsamości na SQL Server.

Składnia tego polecenia jest jak pokazano:

Ustaw nazwa_nambuzy tożsamości_insert

Aby włączyć wkładkę tożsamości w tabeli użytkowników, możemy uruchomić:

Ustaw użytkowników Identity_Insert;

Aby wyłączyć wkładkę tożsamości w określonej tabeli, ustaw wartość na wyłączenie.

SQL Server Reseed Identity Column

Jeśli usuniesz rekord z tabeli, wartość kolumny jego tożsamości nie jest ponownie wykorzystywana. Może to prowadzić do niespójności i fragmentacji w bazie danych.

Możesz zsynchronizować kolumnę tożsamości, ponownie przesycając, jak pokazano w poniższym poleceniu:

DBCC Checkident (Table_name, Reseed, 1)

Powyższe zapytanie powinno ponownie wydać kolumnę tożsamości określonej tabeli, która rozpoczyna się od indeksu 1.

Wniosek

W tym artykule zbadaliśmy kolumnę tożsamości na serwerze SQL i jak włączyć lub wyłączyć w tabeli.

Mam nadzieję, że uznałeś to za pomocne!