SQL Sunucu GUID'i

Sql Sunucu Guid I



Bu yazıda, SQL Server'da uniqueidentifier tipini nasıl kullanacağımızı öğreneceğiz. GUID değerleri oluşturmak için NEWID() ve NEWSEQUENTIALID() işlevlerini de kullanacağız.

SQL Server Benzersiz Tanımlayıcı Türü

Bu, bir sütunda veya yerel bir değişkende kullanılan 16 baytlık bir GUID değeridir. NEWID() ve NEWSEQUENTIALID() işlevlerini kullanarak benzersiz bir tanımlayıcı türü değeri oluşturabilirsiniz.

Ayrıca xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx biçiminde bir dize değerini dönüştürerek de bir GUID değeri oluşturabilirsiniz; burada x, 0 – 9 aralığında onaltılık bir basamaktır.







Bir GUID değerinin 'rasgeleliği' nedeniyle, bir GUID değerinin bir veritabanında ve hatta sunucularda benzersiz olabileceği garanti edilir. Bu, belirli bir değeri benzersiz bir şekilde tanımlamak için mükemmel bir veri türü yapar.



SQL Sunucusu NEWID() İşlevi

NEWID() işlevi, benzersiz tanımlayıcı türünde yeni bir benzersiz değer oluşturmamıza olanak tanır. Sözdizimi gösterildiği gibidir:



DEĞİŞTİRMEK ( )

Örneğin:





@gid uniqueidentifier'ı bildir;
set @gid = CHANGE();
gid olarak @gid'i seçin;

Yukarıdaki ifadeler şu şekilde bir GUID değeri döndürmelidir:

git
873412E2-A926-4EAB-B99F-A1E47E727355

SQL Server NEWSEQUENTIALID() İşlevi

Bu işlev, sırayla benzersiz GUID değerleri oluşturmanıza olanak tanır. Daha önce oluşturulan GUID'den daha büyük bir GUID değeri üreterek çalışır.



Bu, NEWID() işlevini kullanarak bir sonraki GUID değerini manuel olarak belirlemek yerine değerleri sıralı olarak ürettiğinden, satır tanımlayıcısı olarak kullanılmasını yararlı kılar.

İşlev sözdizimi gösterildiği gibidir:

YENİSIRALI KİMLİK ( )

SQL Server GUID'i Satır Tanımlayıcı Olarak Kullanma

Aşağıdaki örnek, belirli bir sütun için bir satır tanımlayıcısı olarak newsequentialid() işlevinin nasıl kullanılacağını gösterir.

tablo girişleri oluştur (
id uniqueidentifier null değil varsayılan newsequentialid() birincil anahtar,
sunucu_adı varchar(50),
sunucu_adresi varchar(255) boş değil,
sıkıştırma_yöntemi varchar(100) varsayılan 'yok',
size_on_disk kayan noktası boş değil,
size_sıkıştırılmış şamandıra,
total_records int boş değil,
başlangıç_tarihi tarihi
);
sokmak
içine
GİRİŞLER(sunucu_adı,
sunucu adresi,
sıkıştırma yöntemi,
diskteki boyut,
boyut_sıkıştırılmış,
toplam kayıtlar,
başlangıç_tarihi)
değerler
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Yukarıdaki örnekte, benzersiz tanımlayıcı türü olarak ID sütununu ve newequentialid() işlevi tarafından oluşturulan değer olarak varsayılan değeri ayarladık.

Ortaya çıkan tablo gösterildiği gibidir:

girişlerden * seçin;

Çıktı:

GUID değerlerinin kullanılması kesin benzersizlik sağlasa da, hata ayıklarken veya belirli değerleri seçerken zor olabilir.

Çözüm

Bu kılavuzda, SQL Server'daki benzersiz tanımlayıcı türü hakkında bilgi edindiniz. Ayrıca NEWID() ve NEWSEQUENTIALID() işlevlerini kullanarak GUID değerlerinin nasıl oluşturulacağını da öğrendiniz.