COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
35/ 65

Modelleme ve veri değişimi

IDENTITY, SEQUENCE ve GUID

Kimlik üretmek iş sırası üretmek değildir.

AnlaÖrneği inceleKendin uygula

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.

NERESİNDE KULLANIRSIN?

Yeni kayıt kimliği seçerken ve dağıtık veri tasarımında.

SIK YAPILAN HATA

IDENTITY alanını kesintisiz, iş anlamlı sayaç sanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
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.

02 / SIRA SENDE

Önce kendin dene.

GUID değerinin tipi ile bir sipariş kimliğinin tipini ayırt et.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT SQL_VARIANT_PROPERTY(NEWID(), 'BaseType') AS GuidType;

uniqueidentifier döner. Laboratuvardaki OrderId ise int’tir.