SQL Server’da Cannot Insert Explicit Value for Identity Column in Table ‘Tablename’ When IDENTITY_INSERT is Set to OFF Hatası

Herkese merhaba,

Bu yazıda sizlere SQL Server’da Cannot insert explicit value for identity column in table ‘Tablename’ when IDENTITY_INSERT is set to OFF hatasından bahsedeceğim.

SQL Server’da bazı durumlarda Cannot insert explicit value for identity column in table ‘Tablename’ when IDENTITY_INSERT is set to OFF hatası alabilirsiniz.

Bu hata otomatik identity olan bir tabloya kendimiz bir ID insert etmeye çalıştığınız zaman ortaya çıkan bir hatadır.

SQL Server'da Cannot Insert Explicit Value for Identity Column in Table 'Tablename' When IDENTITY_INSERT is Set to OFF Hatası

Çıkan hata yukarıdaki gibidir. Hangi tabloda işlem yapıyorsanız o tabloyu belirterek hatayı gösterir.

Benim insert kodum aşağıdaki gibiydi. Sizin daha farklı olabilir.

INSERT INTO dbo.OgrenciTablosu (OgrenciId, OgrenciAd, OgrenciNot)
	VALUES (0, -- OgrenciId - int
	N'Yavuz', -- OgrenciAd - nvarchar(50)
	50  -- OgrenciNot - int
	)

Bu kodda görüldüğü üzere OgrenciId alan identity bir alan ve elle ekleme yapmaya çalıştık. Bu yüzden hata oluştu.

Hatayı düzeltmenin iki yolu var.

1-) Yol

INSERT INTO dbo.OgrenciTablosu (OgrenciAd, OgrenciNot)
	VALUES (N'Yavuz', -- OgrenciAd - nvarchar(50)
	50  -- OgrenciNot - int
	)

Insert kısmından OgrenciId kısmını çıkarmaktır. Yukarıdaki kod ile arasındaki farkı inceleyerek anlamanızı öneriyorum.

2-) Yol

SET IDENTITY_INSERT OgrenciTablosu ON;
INSERT INTO dbo.OgrenciTablosu (OgrenciId, OgrenciAd, OgrenciNot)
	VALUES (5, 'Mehmet', 65)
SET IDENTITY_INSERT OgrenciTablosu OFF;

Set Identity_Insert kodunu belirtilen tablo için On yapmak yani açmaktır. Sonra işimiz bitince eski haline döndürmek için Off yapıp kapatmalıyız.

Yukarıdaki iki kodu ben kendi tablom için yaptım. Sonucu sizlerle paylaşıyorum. Siz de kendi tablolarınız için deneme işlemler yapıp sonuçları izleyebilirsiniz.

SQL Server'da Cannot Insert Explicit Value for Identity Column in Table 'Tablename' When IDENTITY_INSERT is Set to OFF Hatası

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

2.132 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!