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.
Tablonun kimlik sütununa açık değerlerin eklenmesine izin verir.
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
Tablonun ait olduğu ş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. Bir tabloda bu özellik zaten ONolarak ayarlanmışsa ve başka bir tablo için bir SET IDENTITY_INSERT ON deyimi verilmişse, SQL Server SET IDENTITY_INSERT zaten ONolduğunu bildiren bir hata iletisi döndürür ve ON ayarlandığı tabloyu bildirir.
Eklenen değer tablonun geçerli kimlik değerinden büyükse, SQL Server otomatik olarak yeni eklenen değeri geçerli 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
Kullanıcının tabloya sahip olması veya tabloda ALTER izni olması gerekir.
Ö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 kodu aşağıdaki hatayı döndürmelidir:
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
İlgili içerik
- CREATE TABLE (Transact-SQL)
- CREATE TABLE (Transact-SQL) IDENTITY (Özellik)
- SCOPE_IDENTITY (Transact-SQL)
- INSERT (Transact-SQL)
- SET Deyimleri (Transact-SQL)