Birincil anahtar sütunu, genellikle bir SQL Server veritabanı oluştururken otomatik olarak artacak şekilde ayarlanır. KİMLİK sınırı, birincil anahtar sütununun bunu yapması için ayarlanır. Başlangıç konumu ve artış adımı, parametreler olarak KİMLİK sütununa aktarılır. Daha sonra yeni bir kayıt eklendiğinde ve kimlik girişi KAPALI olarak ayarlandığında, KİMLİK sütununun değeri önceden tanımlanmış adım normalde bir sayı ile artırılır. Ayrıca, IDENTITY INSERT özelliği, tek bir oturumda yalnızca bir tablo için ON olarak ayarlanmıştır.
Bu yazıda hatayı tartışacağız 'Tabloda kimlik sütunu için açık değer eklenemez 'IDENTITY INSERT OFF' u çevirmek ve 'PRIMARY KEY ID' olmadan verileri insert deyimine eklemek Hata, kullanıcı 'kimlik_insert' öğesini 'KAPALI' olarak ayarladığında ortaya çıkar. Ardından, tablonun birincil anahtar sütununa açıkça veri eklemeye çalışır. Bu, aşağıdaki örnek kullanılarak açıklanabilir. İlk önce 'appuals' adlı bir veritabanı oluşturun. 'Appuals' adlı bir veritabanı oluşturmak. Aşağıdaki kodu kullanarak 'kişi' adlı bir tablo oluşturun. Bir kullanarak oluşturulmuş tablo 'BİRİNCİL ANAHTAR KİMLİĞİ' 'Kişi' adlı bir tablo oluşturmak “Identity_insert'i kapat | üzerinde ” bu hatayı çözmemize yardımcı olacaktır. Bu ifade için doğru sözdizimi aşağıdaki gibidir. İlk argüman ise tablonun bulunduğu veritabanının adıdır. İkinci argüman, kimlik değerinin ayarlanması gereken tablonun ait olduğu şemadır. AÇIK veya KAPALI . Üçüncü argüman Tabloya hatasız veri eklemenin temelde iki farklı yolu vardır. Bunlar, bu hatanın çözümü olarak kabul edilir ve aşağıda tartışılır. İlk durumda, verileri tabloya ekleyeceğiz. 'KİMLİK GİRİŞİ' ayarlanır 'KAPALI' . Dolayısıyla, ID INSERT deyiminde mevcutsa, hatayı alırsınız 'IDENTITY_INSERT OFF olarak ayarlandığında' person 'tablosundaki kimlik sütunu için açık değer eklenemez'. Sorgu sekmesinde aşağıdaki kodu yürütün.IDENTITY_INSERT OFF olarak ayarlandığında ' Aşağıda gösterildiği gibi.
Veritabanı ve tablo oluşturma:
CREATE TABLE person (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))
'Identity_insert off ayarı için sözdizimi | on ”:
IDENTITY_INSERT AYARLA. .
AÇIK
kimlik sütununa sahip tablodur.
Hata 1: Identity_insert'i KAPALI olarak ayarlayın
Identity_insert kişiyi kapatın; kişi (ID, ad, soyad) değerlerine (3, 'Sadia