Yandex Metrica
SQL Server Sequence Kullanımı - Yasin Sunmaz

Yasin Sunmaz

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

SQL Server Sequence Kullanımı

14.01.2023 yasinsunmaz 96 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. Aynı Sequence’i kullanarak farklı tablolar için birbirini takip eden sayılar üretebilirsiniz. Baktığınızda biraz da Identity mantığına da benziyor. Sequence cache mekanizması ile belirtilen sayı kadar Cache'de tutmaya yaramaktadır. Squence'in nasıl oluşturabileceğinizi ve nasıl kullanabileceğiniz konusuna gelelim.

Squence Oluşturma

Squence oluşturmak için bir şemaya ait ya da varsayılan olarak dbo şemasına ait olarak isim vermemiz gerekir. Veri tipini de belirttikten sonra diğer özellikleri istediğiniz şekilde girebilirsiniz. En önemli kısım START WITH başlangıç değerini belirleme ve INCREMENT BY artış değerini belirtmeniz gerekiyor. Değerini vermezseniz başlangıç değerini -2147483648 olarak kabul eder. Aynı şekilde INCREMENT BY değeri de 0 olarak tanımlanır.

  CREATE SEQUENCE item_counter--Squence adını belirleme
  AS INT--Veri tipi belirtme
  START WITH 1--Başlangıç değeri
  INCREMENT BY 1--Artış değeri
  MINVALUE 1--Minumum değer
  MAXVALUE 60--Maksimum değeri
  NO CACHE--Cache yok
  NO CYCLE--Sona ulaşınca başa dönmez hata verir

Bunun yanında MINVALUE minumum değeri, MAXVALUE maksimum alacağı değeri belirtebilirsiniz.

NO CACHE yerine CACHE 30 olarak belirtirseniz 1 den 30’a kadar olan sayıları cache’e alacaktır. 30’a geldiğinde 30’dan 60’a kadar olan sayıları tekrar Cache’e alacaktır. CACHE değeri vermek performans açısından iyi gibi gözüküyor olabilir fakat performans olarak çok bir fark yoktur. Bunun yanında sunucu tarafında beklenmedik bir durumda kapanırsa Cache’de sayıların kaybolmasına yol açabilir. Bu durumu göz önünde bulundurmak faydalı olacaktır.

CYCLE seçeneği, artan bir değerli bir listede maksimum değer, azalan değerli bir listede minimum değer aşıldığında tekrar başlangıca dönülmesini sağlar.
NO CYCLE seçeneği ise bir NEXT VALUE FOR çağrısı yapıldığında bir listenin sonuna ulaşıldığında bir hata döndürecektir. Bir CYCLE değeri belirtilmedi ise varsayılan olarak NO CYCLE olarak tanımlanır.

Squence Çalıştırma

NEXT VALUE FOR ile ilgili squenceyi çalışırabilirsiniz. Gerekli yerlerde bir sonraki değeri alarak istediğiniz işlemi yapabilirsiniz.

SELECT
NEXT VALUE FOR item_counter

Bir tabloya kayıt eklerken de squence çağırıp kullanabilirsiniz.

INSERT INTO [dbo].[Posts] ([Id],[Title],[Content]) VALUES (NEXT VALUE FOR item_counter, 'SQL Server Sequence Kullanımı', 'SQL Server Sequence Kullanımı İçeriği')

Sequence Düzenleme

ALTER komutu ile belli bir değerden sonra başlamasını sağlayabilirsiniz.

ALTER SEQUENCE item_counter RESTART WITH 50

Tüm Squence Listesi

Veri tabanında bulunan tüm squence listesini döndürebilirsiniz. Böylece tüm squencelerin durumunu kolaylıkla görebilirsiniz. Mevcut değerini, minimum, maksimum değerleri gibi bir çok bilgiye ulaşabilirsiniz.

SELECT *
FROM sys.sequences

Squence listesi

Squence Silme

DROP SEQUENCE item_counter

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

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

Diğer Yazılar

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

11.01.2023 yasinsunmaz 122 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...

SQL Server OUTPUT Kullanımı Eklenen ve Düzenlenen Kaydın Bilgilerini Geriye Döndürme

09.01.2023 yasinsunmaz 89 0

Bu yazımda SQL Server'da OUTPUT ile INSERTED komutunun yapısını inceleyeceğiz. Yeni bir kayıt ekleme ya da üzerinde değişiklik yapılan işlemlerde, kayd...

SQL Server'da CASE WHEN Kullanımı

08.01.2023 yasinsunmaz 107 0

SQL Server'da CASE WHEN yapısını bu yazımda inceleyeceğiz. CASE WHEN ile belirli koşullarda farklı çıktılar ya da işlemler yapabilmek için kullanabiliyoruz. SQL&#...

Conversion Failed When Converting The Nvarchar Value 'xxxx' to Data Type Int Hatası Çözümü

20.09.2022 yasinsunmaz 162 0

SQL Server'da önceden oluşturulmuş olan bir view'de bir zaman sonra veri getiremediğini ve Conversion Failed When Converting The Nvarchar Value '   ...