Modelleme ve veri değişimi
IDENTITY, SEQUENCE ve GUID
Kimlik üretmek iş sırası üretmek değildir.
Kavramı anlayalım
IDENTITY tabloya bağlı otomatik sayı üretir; benzersizlik için ayrıca primary key veya unique kısıtı kullanılır. Silme, rollback ve yeniden başlatma gibi durumlarda sayı boşlukları oluşabilir. Kimlikten muhasebesel kesintisiz belge sırası bekleme.
SEQUENCE tablodan bağımsız sayı üretir ve birden fazla nesne tarafından kullanılabilir; o da boşluksuz sıra garantisi değildir. GUID dağıtık kimlik üretimini kolaylaştırabilir, fakat boyutu ve rastgeleliği indeks maliyetini etkiler. Kimliğin iş anahtarı, kullanıcıya görünen belge numarası ve sıralama amacı farklı gereksinimlerdir.
Yeni kayıt kimliği seçerken ve dağıtık veri tasarımında.
IDENTITY alanını kesintisiz, iş anlamlı sayaç sanmak.
Aynı konu. Üç farklı derinlik.
SELECT NEWID() AS NewGuid;Yeni bir uniqueidentifier üretir; sıralı belge numarası değildir.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
GUID değerinin tipi ile bir sipariş kimliğinin tipini ayırt et.
Çözümü ve açıklamasını göster
SELECT SQL_VARIANT_PROPERTY(NEWID(), 'BaseType') AS GuidType;uniqueidentifier döner. Laboratuvardaki OrderId ise int’tir.