Aracılığıyla paylaş


set IDENTITY_INSERT (Transact-SQL)

Kimlik sütun bir tabloeklenecek açık değerler verir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • database_name
    Belirtilen tablo içinde bulunduğu veritabanı adıdır.

  • schema_name
    tablo ait olduğu şema addır.

  • table
    Kimlik sütunolan bir tablo adıdır.

Açıklamalar

Her saatyalnızca bir tablo bir oturum IDENTITY_INSERT özellik küme açık olabilir.Bu özellikküme için on bir tablo zaten varsa ve başka bir tabloiçin bir set IDENTITY_INSERT on deyim verilen SQL Server set IDENTITY_INSERT zaten açık ve tablo küme on for. olduğu raporlar bildiren bir hata iletisi döndürüyor

Eklenen değer tabloiçin geçerli kimlik değerden daha büyükse, SQL Server Yeni eklenen değer olarak'otomatik olarak kullanırgeçerli kimlik değeri.

set IDENTITY_INSERT ayarı yürütmek sırasında küme veya çalışma saat ve ayrıştırma saatzaman.

İzinler

Kullanıcı, tablo sahibi veya tabloüzerinde alter iznine sahip.

Örnekler

Aşağıdaki örnek, kimlik sütun bir tablo oluşturur ve gösterir nasıl SET IDENTITY_INSERT ayarı, bir boşluğa neden kimlik değerlerini doldurmak için kullanılabilir bir DELETEdeyim.

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