SET IDENTITY_INSERT (Transact-SQL)
sp_procedure_params_rowset2
SET IDENTITY_INSERT [ database_name . [ schema_name] . ] table { ON | OFF }
Argumenty
database_name
sp_procedures_rowsetschema_name
To nazwa schematu, do której należy tabela.table
sp_procedures_rowset; 2
Remarks
sp_procedures_rowset2Jeśli ta właściwość jest ustawiona na ON już wystąpił w tabela, a instrukcja zestaw ON IDENTITY_INSERT wystawiany dla innej tabela SQL Server Zwraca komunikat o błędzie, informujący IDENTITY_INSERT zestaw jest już włączone i zgłasza ustawiana jest włączone dla tabela.
Jeśli wartość wstawiany jest większa niż bieżąca wartość tożsamości w tabela SQL Server automatycznie używa nowej wartości wstawione jako bieżącą wartość tożsamości.
sp_schemata_rowset
Uprawnienia
Użytkownik musi właścicielem obiektu lub być członkiem sysadmin Rola serwera lub db_owner and db_ddladmin stałe role bazy danych.
Przykłady
W poniższym przykładzie jest tworzona tabela z kolumną identyfikacji i pokazuje, jak SET IDENTITY_INSERT ustawienie można wypełnić przerwy w wartościach tożsamości spowodowane DELETE Instrukcja.
USE AdventureWorks;
GO
-- Create tool table.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
-- Inserting values into products table.
INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver')
INSERT INTO dbo.Tool(Name) VALUES ('Hammer')
INSERT INTO dbo.Tool(Name) VALUES ('Saw')
INSERT INTO dbo.Tool(Name) VALUES ('Shovel')
GO
-- Create a gap in the identity values.
DELETE dbo.Tool
WHERE Name = 'Saw'
GO
SELECT *
FROM dbo.Tool
GO
-- Try to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO
-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO
-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO
SELECT *
FROM dbo.Tool
GO
-- Drop products table.
DROP TABLE dbo.Tool
GO