MS SQL Server SEQUENCE'larının neden Oracle gibi bir ORDER parametresi yok?


9

In belgelenmesi CREATE SEQUENCET-SQL için , bunu görebilirsiniz CREATE SEQUENCEkomut hiçbir vardır ORDERparametre.

Karşılaştırma için, Oracle belgelerCREATE SEQUENCE göstermek ORDER/ NOORDERseçenekleri:

ORDER

ORDERSıra numaralarının istek sırasına göre oluşturulmasını garanti etmek için belirtin . Bu yan tümce, sıra numaralarını zaman damgası olarak kullanıyorsanız yararlıdır. Birincil anahtarlar oluşturmak için kullanılan sekanslar için garanti sırası genellikle önemli değildir.

ORDERyalnızca Gerçek Uygulama Kümeleriyle Oracle Database kullanıyorsanız sipariş oluşturulmasını garanti etmek için gereklidir. Özel mod kullanıyorsanız, sıra numaraları her zaman sırayla oluşturulur.

NOORDER

NOORDERTalep sırasına göre sıra numaralarının oluşturulduğunu garanti etmek istemiyorsanız belirtin . Bu varsayılan ayardır.

Microsoft SQL Server, SEQUENCEs için güçlü bir sipariş kısıtlaması sağlıyor mu? Yoksa Microsoft bunu genel olarak önemli görmüyor mu?


2
Oracle ile bu genellikle bir RAC ile anlamlıdır - bildiğim kadarıyla SQL Server'da bir RAC'ye eşdeğer bir şey yoktur. Neden ihtiyacın olduğunu düşünüyorsun?
a_horse_with_no_name

Ben sadece SQL Server ile uyumlu bir program yapıyorum. Bazı diziler oluşturur ve CREATE SEQUENCEifadelerde, ORDER parametresine koştum ve sadece bir sorun olmayacağından emin olmak istedim (neden ORDERilk başta eklendiğinden emin değilim , bu yüzden düşündüm her durumda isteyebilir).
Daniel Gray

Yanıtlar:


12

SQL Server'da, tüm sıra numaraları tek bir örnekte oluşturulur, böylece zaten doğal olarak sipariş edilirler. Ve eğer onları sadece benzersiz sayılar olarak kullanıyorsanız, gerçekten önemli değil.

Oracle uygulaması farklıdır, çünkü bir RAC ortamında (tüm Oracle uygulamaları değil), iki farklı “örnek” tarafından iki sıra numarası üretilebilir (bu Oracle için yanlış terimdir, ancak SQL Server'da sadece denkliği çizer). Normalde, ilk önce talep edilenin daha yavaş olup olmadığını ve daha sonra talep edilenden daha yüksek bir sayıya sahip olup olmadığını umursamazsınız - Oracle belgelerinin dediği gibi, sekansları orijinal isteğin sırasını gerçekten yansıtmak için zaman damgası olarak kullanmıyorsanız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.