Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu ifadeyi kullanarak, bir tablonun sütununa açık değerler IDENTITY ekleyebilirsiniz.
Transact-SQL söz dizimi kuralları
Sözdizimi
SET IDENTITY_INSERT [ [ database_name . ] schema_name . ] table_name { ON | OFF }
Bağımsız değişken
database_name
Belirtilen tablonun bulunduğu veritabanının adı.
schema_name
Tabloyu içeren şemanın adı.
table_name
Kimlik sütunu olan bir tablonun adı.
Açıklamalar
Herhangi bir zamanda, oturumdaki yalnızca bir tabloda IDENTITY_INSERT özelliği ONolarak ayarlanabilir. Eğer bir tabloda bu özellik ONzaten , olarak ayarlanmışsa ve başka bir tablo için bir SET IDENTITY_INSERT ON ifade çıkarırsanız, SQL Server zaten 'olduğunu ONbelirten bir hata mesajı SET IDENTITY_INSERT verir ve hangi tablonun ON ayarlandığını bildirir.
-
FonksiyonunIDENTITY argümanı
incrementpozitif olduğunda ve eklenen değer tablonun mevcut kimlik değerinden büyük olduğunda, SQL Database Engine otomatik olarak yeni eklenen değeri mevcut kimlik değeri olarak kullanır. -
incrementFonksiyonunIDENTITY argümanı negatif olduğunda ve eklenen değer tablonun mevcut kimlik değerinden küçükse, SQL Server otomatik olarak yeni eklenen değeri mevcut kimlik değeri olarak kullanır.
SET IDENTITY_INSERT ayarı ayrıştırma zamanında değil yürütme veya çalışma zamanında ayarlanır.
İzinler
Masaya sahip olmalısın ya da masada izin almalısın ALTER .
Örnekler
Aşağıdaki örnek, kimlik sütunu içeren bir tablo oluşturur ve SET IDENTITY_INSERT ayarının, DELETE deyiminin neden olduğu kimlik değerlerindeki boşluğu doldurmak için nasıl kullanılabileceğini gösterir.
USE AdventureWorks2022;
GO
Araç tablosu oluşturma.
CREATE TABLE dbo.Tool
(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR (40) NOT NULL
);
GO
Ürünler tablosuna değer ekleyin.
INSERT INTO dbo.Tool (Name)
VALUES ('Screwdriver'),
('Hammer'),
('Saw'),
('Shovel');
GO
Kimlik değerlerinde boşluk oluşturun.
DELETE dbo.Tool
WHERE Name = 'Saw';
GO
SELECT *
FROM dbo.Tool;
GO
3 açık kimlik değeri eklemeyi deneyin.
INSERT INTO dbo.Tool (ID, Name)
VALUES (3, 'Garden shovel');
GO
Önceki INSERT kod aşağıdaki hatayı döndürür:
An explicit value for the identity column in table 'AdventureWorks2022.dbo.Tool' can only be specified when a column list is used and IDENTITY_INSERT is ON.
IDENTITY_INSERT
ONolarak ayarlayın.
SET IDENTITY_INSERT dbo.Tool ON;
GO
3 açık kimlik değeri eklemeyi deneyin.
INSERT INTO dbo.Tool (ID, Name)
VALUES (3, 'Garden shovel');
GO
SELECT *
FROM dbo.Tool;
GO
Araç tablosunu bırakma.
DROP TABLE dbo.Tool;
GO