Istnieje możliwość wpisania wartości w sposób jawny do kolumny z ustawioną własnością IDENTITY.
By to zrobić, przed poleceniem INSERT należy ustawić następującą właściwość:
SET IDENTITY_INSERT dbo.TableName ON;
Tryb ten wyłączamy poleceniem:
SET IDENTITY_INSERT dbo.TableName OFF;
Jako przykład posłuzy nam prosta tabela z dwoma kolumnami
CREATE table Car (
Id INT IDENTITY (1,1),
Name NVARCHAR(15)
)
/* kolumna Id oznaczona jako IDENTITY
wartośc początkowa 1 (pierwszy parametr)
wzrost też co 1 (drugi parametr) */
Kod z objaśnieniami poniżej
INSERT INTO Car (Id, Name)
VALUES (1,1);
/* Zwrócony bład podczas wykonywania:
Cannot insert explicit value for identity column in table 'Car' when IDENTITY_INSERT is set to OFF. */
-- włączamy mozliwość wpisywania wartości w sposób jawny do Car.Id
SET IDENTITY_INSERT Car ON;
INSERT INTO Car (Id, Name)
VALUES (1,1);
/* OPERACJA INSERT ZAKOŃCZONA POPRAWNIE
(1 row affected) */
-- wyłączamy możliwość wpisywanie wartości w sposób jawny
SET IDENTITY_INSERT Car OFF;
Korzystając z serwisu akceptujesz regulamin
oraz politykę prywatności.
Używamy informacji zapisanych za pomocą plików cookies w celu zapewnienia maksymalnej wygody w korzystaniu z naszego serwisu.
Jeśli nie wyrażasz zgody, ustawienia dotyczące plików cookies możesz zmienić w swojej przeglądarce.
Tryb ten wyłączamy poleceniem:
Jako przykład posłuzy nam prosta tabela z dwoma kolumnami
Kod z objaśnieniami poniżej