IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü

IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü

7 Eylül 2018 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 26
Yaklaşık okuma süresi : 2 DK
SQL Identity Kolonun Sıra Atlama Sorunu
IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü
5 (100%) 1 Oy

IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü , çözüm dersi sql eğitim setime devam ediyorum. Şimdilik (07.09.2018) sql eğitim setimin son dersidir. Tabi zamanla bu eğitim seti büyüyecektir. Şimdi IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü dersimize geçelim.

 

IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü

Bu dersimizde insert esnasında identity kolonuna müdahele etmemiz gereken durumlarda ne yapmamız gerekir onu göreceğiz.  Aynı zamanda bu konu karşımızda bir hata olarak da çıkabiliyor. Onunda çözümü olacaktır.

Eğerki insert komutunda identity kolonuna da manuel veri eklemek isterseniz. Şöyle bir hata alacaksınız.

cannot insert explicit value for identity column in table 'XTablosu' when identity_insert is set to off

Bu hatanın anlamı – identity tanımlanmış kolona veri yazamazsınız. İdentity_insert özelliği kapalı.

Bunun çözümü olarak şu komutu kullanıyoruz.

set identity_insert TabloAdı on
--identity insert özelliğini açtık

--insert komutu


set identity_insert TabloAdı off
--identity insert özelliğini kapattık

Diğer bir çözümü ise identity olan kolonu insert komutu içerisinden çıkartıyoruz 🙂

Eğerki bu insert işini benim gibi dinamik olarak yaptırmaya çalışıyorsanız ve identity kolonunuz ilk sırada yani en başta ise kolon adlarını çektiğiniz sorgunun sonuna

and ORDINAL_POSITION > 1
//yada
and IS_NULLABLE = 'YES'
//yada
and COLUMN_NAME not like '%ID%'

gibi şartlar ekleyerek id kolonunuzu insertin dışında bırakabilirsiniz.

Bu dersi yazarken bir zamanlar üzerinde uğraştığım Dinamik insert uğraşlarım geldi. Dinamik İnsert dediğim olay aslında şu. Bir metod hazırlamıştım. Bu metoda değerleri ve tablo adını gönderdiğimde, metod içerisinde değerler ve tablo kolonları eşlesip bir insert sorgusu hazırlıyordum. Bu sorguyu da çalıştırıp insert’i yapıyordum. Yazdığım son örnekte o işlemden bir parçaydı.

Dinamik insert için bu yazıya fazla yorum gelirse, ilgili metodu bulup sizlerle paylaşabilirim. 😉


IDENTITY_INSERT is set to ON/OFF Kullanımı ve Hata Çözümü , dersimizde bu kadardı dostlar. Diğer derslerimizde görüşmek üzere.

Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.

Sağlıcakla ve Takipte Kalın. 😉

SQL Identity Kolonun Sıra Atlama Sorunu

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.