Dalam dokumentasi CREATE SEQUENCE
untuk T-SQL , Anda dapat melihat bahwa CREATE SEQUENCE
perintah tidak memiliki ORDER
parameter.
Sebagai perbandingan, Oracle docs untukCREATE SEQUENCE
menunjukkan opsi ORDER
/ NOORDER
:
ORDER
Tentukan
ORDER
untuk menjamin bahwa nomor urut dihasilkan dalam urutan permintaan. Klausa ini berguna jika Anda menggunakan nomor urut sebagai cap waktu. Pesanan yang dijamin biasanya tidak penting untuk urutan yang digunakan untuk menghasilkan kunci utama.
ORDER
diperlukan hanya untuk menjamin pembuatan yang dipesan jika Anda menggunakan Oracle Database dengan Cluster Aplikasi Nyata. Jika Anda menggunakan mode eksklusif, nomor urut selalu dihasilkan secara berurutan.
NOORDER
Tentukan
NOORDER
jika Anda tidak ingin menjamin nomor urut dihasilkan dalam urutan permintaan. Ini standarnya.
Apakah Microsoft SQL Server memberikan kendala pemesanan yang kuat untuk SEQUENCE
s? Atau apakah Microsoft tidak menganggapnya penting secara umum?
sumber
CREATE SEQUENCE
pernyataan, saya berlari ke parameter ORDER, dan saya hanya ingin memastikan bahwa itu tidak akan menjadi masalah (saya tidak yakin persis mengapaORDER
ditambahkan di tempat pertama jadi saya pikir saya mungkin bertanya kalau-kalau).Jawaban:
Dalam SQL Server semua nomor urut dihasilkan pada satu contoh sehingga mereka sudah dipesan secara inheren. Dan jika Anda hanya menggunakannya sebagai angka unik, toh itu tidak masalah.
Implementasi Oracle berbeda karena dalam lingkungan RAC (tidak semua implementasi Oracle), dua nomor urut dapat dihasilkan oleh dua "instance" yang berbeda (itu istilah yang salah untuk Oracle tetapi hanya menggambar kesetaraan dalam SQL Server). Biasanya Anda tidak akan peduli jika yang diminta lebih lambat dan mendapat angka yang lebih tinggi dari yang diminta nanti - kecuali, seperti yang dikatakan Oracle docs, Anda menggunakan urutan sebagai cap waktu untuk benar-benar mencerminkan urutan permintaan asli.
sumber