SQL Server IDENTITY_INSERT umożliwia wstawianie jawnych wartości do kolumny identity tabeli.
Instrukcja IDENTITY_INSERT musi być włączona, aby wstawić jawną wartość kolumny identity. Domyślnie IDENTITY_INSERT jest wyłączone.
składnia
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_name
jest nazwą bazy danych, w której istnieje określona tabela.
schema_name
to nazwa schematu, do którego należy tabela.,
table_name
to nazwa tabeli z kolumną identity.
przyjrzyjmy się przykładowi SET IDENTITY_INSERT w SQL SERVER.
poniższy przykład pokazuje, w jaki sposób IDENTITY_INSERT jest używany do podanej wartości tożsamości jawnie dla kolumny identity.
tworzymy table-X, które mają ID kolumny ID. Pozwala sprawdzić, czy staramy się przekazać jawną wartość dla ID kolumny ID.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
jak widzimy, daje błąd jawnej wartości dla kolumny identity w tabeli X, a także sugeruje, że jeśli chcemy wstawić jawną wartość dla kolumny identity, to IDENTITY_INSERT musi być włączony.
teraz próbujemy uruchomić powyższe polecenie ponownie po włączeniu IDENTITI_INSERT .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
jak widzimy , Jawna wartość kolumny identity jest wstawiana do tabeli.,
w powyższej instrukcji musimy określić listę kolumn podczas wstawiania , w przeciwnym razie nie pozwoli to na jawną wartość kolumny identity i wyrzuci błąd.
jak widzimy w poniższej instrukcji nawet po IDENTITY_INSERT ON, nadal daje błąd jawnych wartości dla kolumny identity, ponieważ musimy podać nazwę kolumny podczas wstawiania.