SQL Server IDENTITY_INSERT permite inserir valores explícitos na coluna de identidade de uma tabela.
a declaração IDENTITY_INSERT deve ser definida para inserir um valor explícito para a coluna identidade. Por omissão, o IDENTITY_ insert está desligado.
sintaxe
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
banco de dados_ Nome
é o nome da base de dados na qual a tabela especificada existe.
schema_name
é o nome do esquema ao qual a tabela pertence.,
table_name
é o nome de uma tabela com uma coluna de identidade.
permite ver um exemplo de IDENTITY_ INSERT no servidor SQL.
seguindo exemplo, demonstre como IDENTITY_INSERT é usado para dado valor de identidade explicitamente para a coluna de identidade.
criamos uma tabela-X que tem um ID de coluna de identidade. Vamos verificar se tentamos passar o valor explícito para o ID da coluna de identidade.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
Como podemos ver, Ele dá um erro de um valor explícito para a coluna de identidade na tabela X e também sugerindo que, se quisermos inserir valor explícito para a coluna de identidade, em seguida, IDENTITY_INSERT deve estar ativado.
agora nós tentamos executar acima da declaração novamente depois de definir IDENTITY_ insert ON .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
conforme vemos , o valor explícito para a coluna de identidade é inserido na tabela.,
na declaração acima , devemos especificar a lista de colunas durante a inserção, caso contrário não permitirá um valor explícito para a coluna identidade e lançar um erro.
Como vemos na seguinte declaração, mesmo após IDENTITY_INSERT ON, ainda assim ele dá um erro de valores explícitos para a coluna identidade como temos que especificar o nome da coluna durante a inserção.