Yandex Metrica
SQL Server'da IDENTITY_INSERT İle İstenilen Id Değerini Ekleme - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SQL Server'da IDENTITY_INSERT İle İstenilen Id Değerini Ekleme

11.03.2022 yasinsunmaz 5508 0

SQL Server'da bazı verileri taşırken Id değerleri bizim için önemli olabilmektedir. Bunu durumda ise Id değeri otomatik artan olduğunda bizim için sorun olabilmektedir. Bunun yanı sıra da tabloya eklediğiniz veride bir silme işlemi yaptığınızda silinen Id değeri artık kullanılmıyor. Çünkü SQL Server'da Id değeri otomatik artan olduğu için silinen Id değerini atlayarak devam edecektir. Eğer Id değerini değiştirmek ya da sıfırlamak isterseniz bunun için de bir yöntem bulunmaktadır. Bunun için Identity Kolonunun Başlangıç Değerini Değiştirmek adlı yazıma da göz atabilirsiniz. Şimdi gelelim asıl konumuz olan Id değerini istediğimiz değeri vererek kayıt eklemeye...

Mevcut Durum

Tabloda gördüğünüz gibi 77 numaralı Id değerinden sonra 115 numaralı Id değerine geçtiğini görebilirsiniz. Biz bu Id değerleri arasına veri eklemek istediğimizde SQL Server buna izin vermeyecek ve hata verecektir. Mevcut SQL INSERT kodumuz aşağıdaki gibidir.

INSERT INTO dbo.Products(ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued) 
  VALUES(78, N'Ürün 1', 12, 2, N'1 kg', 13.00, 32, 0, 15, CONVERT(bit, 'False')),(79, N'Ürün 1', 12, 2, N'1 kg', 13.00, 32, 0, 15, CONVERT(bit, 'False'))

SQL Server'da IDENTITY_INSERT İle İstenilen Id Değerini Ekleme

Çözüm

INSERT işlemimizin başına ve sonuna bir satır kod eklerek istediğimiz Id değerine kayıt ekleyebiliriz. INSERT tanımından önce SET IDENTITY_INSERT ekleyip tablo adını yazıp ON değimini ekliyoruz. Burada aslında bu tablo için IDENTITY_INSERT durumunu aktif ediyoruz. Var olan INSERT kodumuzu yazıp sonrasında yine aynı şekilde SET IDENTITY_INSERT ekleyip tablo adını yazıp ardından OFF değimini ekliyoruz. Burada da tablomuz için IDENTITY_INSERT durumunu pasif hale getiriyoruz. SQL kodumuzda bu değişiklikleri yaptığımızda Execute(F5) edip çalıştırdığımızda verilerin eklendiğini görebilirsiniz.

SET IDENTITY_INSERT dbo.Products ON 
  INSERT INTO dbo.Products(ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued) 
  VALUES(78, N'Ürün 1', 12, 2, N'1 kg', 13.00, 32, 0, 15, CONVERT(bit, 'False')),(79, N'Ürün 1', 12, 2, N'1 kg', 13.00, 32, 0, 15, CONVERT(bit, 'False'))
SET IDENTITY_INSERT dbo.Products OFF

Sorgu Sonucu

SQL Server'da IDENTITY_INSERT İle İstenilen Id Değerini Ekleme

Umarım faydalı olmuştur. İyi çalışmalar dilerim.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SQL Server Synonym Nedir ve Nasıl Kullanılır?

09.01.2026 yasinsunmaz 243 0

Bu yazımda SQL Server'da oldukça faydalı olan synonym yapısını inceleyeceğiz. Veritabanı projelerinde zamanla tablo isimleri uzar, şema yapıları deği...

SQL Server Schema Kullanımı

10.12.2025 yasinsunmaz 260 0

Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ö...

SQL Server'da SELECT INTO ve INSERT INTO SELECT Kullanımı

31.05.2025 yasinsunmaz 798 0

Bu yazımda, SQL Server'da oldukça sık kullanılan ve günlük veri işlemlerinde hayat kurtaran iki komutu inceleyeceğiz: SELECT INTO ve INSERT INTO SELECT. Bu ...

SQL Server'da LAG() ve LEAD() Kullanımı

23.05.2025 yasinsunmaz 649 0

Bu yazımda SQL Server'da oldukça faydalı olan LAG() ve LEAD() fonksiyonlarını inceleyeceğiz. Bu fonksiyonlar, bir satırdaki veriye bakarken, o satırın öncesindeki v...

SQL Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 1689 0

SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...