Aracılığıyla paylaş


NEWSEQUENTIALID (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Windows başlatıldıktan sonra belirtilen bir bilgisayarda bu işlev tarafından daha önce oluşturulan herhangi bir GUID'den daha büyük bir GUID oluşturur. Windows yeniden başlatıldıktan sonra GUID daha düşük bir aralıktan yeniden başlatılabilir, ancak yine de genel olarak benzersizdir. Guid sütunu satır tanımlayıcısı olarak kullanıldığında, kullanmak NEWSEQUENTIALID işlevi kullanmaktan NEWID daha hızlı olabilir. Bunun nedeni, işlevin NEWID rastgele etkinliğe neden olması ve daha az önbelleğe alınmış veri sayfası kullanmasıdır. kullanmak NEWSEQUENTIALID , veri ve dizin sayfalarının tamamen doldurulmasına da yardımcı olur.

Önemli

Gizlilik önemliyse bu işlevi kullanmayın. Bir sonraki oluşturulan GUID değerini tahmin etmek ve bu nedenle bu GUID ile ilişkili verilere erişmek mümkündür.

NEWSEQUENTIALID , Windows UuidCreateSequential işlevi üzerinde bir sarmalayıcıdır ve biraz bayt karıştırması uygulanır.

Uyarı

İşlevin UuidCreateSequential donanım bağımlılıkları vardır. SQL Server'da, veritabanları (kapsanan veritabanları gibi) diğer bilgisayarlara taşındığında sıralı değer kümeleri geliştirilebilir. Azure SQL Veritabanı'nda ve Always On kullandığınızda, veritabanı farklı bir bilgisayara devredildiğinde sıralı değer kümeleri geliştirilebilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

NEWSEQUENTIALID ( )

Dönüş türleri

uniqueidentifier

Açıklamalar

NEWSEQUENTIALIDyalnızca DEFAULT türündeki tablo sütunlarında kısıtlamalarla kullanılabilir. Örneğin:

CREATE TABLE myTable
(
    ColumnA UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID()
);

NEWSEQUENTIALID İfadelerde DEFAULT kullanıldığında, diğer skaler işleçlerle birleştirilemiyor. Örneğin, aşağıdaki kodu yürütemezsiniz:

CREATE TABLE myTable
(
    ColumnA UNIQUEIDENTIFIER DEFAULT dbo.myfunction(NEWSEQUENTIALID())
);

Önceki örnekte, myfunction() bir değeri kabul eden ve döndüren skaler kullanıcı tanımlı skaler bir uniqueidentifier işlevdir.

NEWSEQUENTIALID sorgularda başvurulamazsınız.

Sayfa bölmelerini ve dizinlerin yaprak düzeyinde rastgele GÇ'yi azaltmak için GUID'ler oluşturmak için kullanabilirsiniz NEWSEQUENTIALID .

kullanılarak NEWSEQUENTIALID oluşturulan her GUID bu bilgisayarda benzersizdir. kullanılarak NEWSEQUENTIALID oluşturulan GUID'ler, yalnızca kaynak bilgisayarda ağ kartı varsa birden çok bilgisayarda benzersizdir.