Udostępnij za pośrednictwem


ZESTAW IDENTITY_INSERT (Transact-SQL)

Umożliwia jawne wartości do identyfikacji kolumna tabela.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

Argumenty

  • database_name
    Jest to nazwa bazy danych, w którym znajduje się w określonej tabela .

  • schema_name
    Jest to nazwa schematu, do której należy tabela .

  • table
    Jest nazwą tabela z kolumna.

Uwagi

W dowolnym czasmoże mieć tylko jedną tabela w sesja IDENTITY_INSERT właściwość zestaw na.Jeśli tabela ma już tej właściwość zestaw na i ustaw IDENTITY_INSERT na instrukcja jest wystawiony w innej tabela, SQL Server zwraca komunikat o błędzie, aby Państwa, ustaw IDENTITY_INSERT jest już na i raporty tabela jest zestaw na for.

Jeśli wartość wstawiana jest większy niż bieżąca wartość tożsamości w tabela SQL Server automatycznie używa nowej wartości wstawionego jako bieżącą wartość tożsamości.

Ustawienie ustawianie IDENTITY_INSERT jest zestaw na wykonać lub czas jednostkowy i nie analizować czas.

Uprawnienia

Użytkownik musi własnej tabela lub ZMIEŃ uprawnienie dla tabela.

Przykłady

Poniższy przykład tworzy tabela o tożsamości kolumna i pokazuje, jak SET IDENTITY_INSERT ustawienie można wypełnić przerwy w wartościach tożsamości, spowodowane przez DELETE instrukcja.

USE AdventureWorks2008R2;
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