Udostępnij za pośrednictwem


SET IDENTITY_INSERT (Transact-SQL)

sp_procedure_params_rowset2

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • database_name
    sp_procedures_rowset

  • schema_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