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 4489 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 Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 576 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...

SQL'e Dair Her Şey OneSQL'de, Ne Ararsanız Bulabileceksiniz

03.06.2023 yasinsunmaz 424 0

Veri tabanı yöneticilerinin yanında zaman zaman yazılımcıların da SQL'i aktif olarak kullanması gerekebiliyor. SQL'i belli başlı şekillder kullanıp işlemlerimizi ...

SQL Server Offset Fetch Kullanımı

06.03.2023 yasinsunmaz 1286 0

Merhabalar uzun zamandır yazı yazamadım. Ülke olarak zor zamanlar geçirmekteyiz. Herkese çok geçmiş olsun diyerek kısa bir yazı ile tekrar buradayım. SQL ...

SQL Server Sequence Kullanımı

14.01.2023 yasinsunmaz 1882 0

Veritabanında yeni keşfettiğim Sequence özelliğini sizlerle paylaşmak isterim. Squence genel olarak belirli değerler arasında numeric ve sıralı sayılar üretir. ...

SQL Server OUTPUT Kullanımı Silinen Kaydın Bilgilerini Geriye Döndürme

11.01.2023 yasinsunmaz 495 0

Bu yazımda SQL Server'da OUTPUT ile DELETED komutunun yapısını inceleyeceğiz. Kayıtlar üzerinde yapılan silme işlemlerinde, kaydın bilgilerin...