Tại sao MS SQL Server SEQUENCE không có tham số ĐẶT HÀNG như Oracle?


9

Trong tài liệu về CREATE SEQUENCET-SQL , bạn có thể thấy rằng CREATE SEQUENCElệnh không có ORDERtham số.

Để so sánh, các tài liệu Oracle đểCREATE SEQUENCE hiển thị ORDER/ NOORDERtùy chọn:

ORDER

Chỉ định ORDERđể đảm bảo rằng số thứ tự được tạo theo thứ tự yêu cầu. Điều khoản này rất hữu ích nếu bạn đang sử dụng các số thứ tự làm dấu thời gian. Thứ tự đảm bảo thường không quan trọng đối với các chuỗi được sử dụng để tạo khóa chính.

ORDERchỉ cần thiết để đảm bảo tạo ra thứ tự nếu bạn đang sử dụng Cơ sở dữ liệu Oracle với các cụm ứng dụng thực. Nếu bạn đang sử dụng chế độ độc quyền, số thứ tự luôn được tạo theo thứ tự.

NOORDER

Chỉ định NOORDERnếu bạn không muốn đảm bảo số thứ tự được tạo theo thứ tự yêu cầu. Đây là mặc định.

Microsoft SQL Server có cung cấp một ràng buộc đặt hàng mạnh mẽ cho SEQUENCEs không? Hay nói chung Microsoft không coi nó là quan trọng?


2
Với Oracle, điều này thường chỉ có ý nghĩa với RAC - theo như tôi biết không có gì tương đương với RAC trong SQL Server. Tại sao bạn nghĩ rằng bạn cần nó?
a_horse_with_no_name

Tôi chỉ làm một chương trình tương thích với SQL Server. Nó tạo ra một số chuỗi và trong các CREATE SEQUENCEbáo cáo, tôi đã chạy vào tham số ORDER và tôi chỉ muốn chắc chắn rằng nó sẽ không thành vấn đề (tôi không chắc tại sao chính xác nó ORDERđược thêm vào ngay từ đầu nên tôi nghĩ tôi có thể hỏi chỉ trong trường hợp).
Daniel Gray

Câu trả lời:


12

Trong SQL Server, tất cả các số thứ tự được tạo trên một cá thể để chúng được sắp xếp theo thứ tự. Và nếu bạn chỉ sử dụng chúng như một số duy nhất thì điều đó thực sự không quan trọng.

Việc triển khai Oracle là khác nhau vì trong môi trường RAC (không phải tất cả các triển khai của Oracle), hai số thứ tự có thể được tạo bởi hai phiên bản khác nhau (đó là thuật ngữ sai cho Oracle nhưng chỉ vẽ tương đương trong SQL Server). Thông thường, bạn sẽ không quan tâm nếu yêu cầu đầu tiên chậm hơn và có số lượng cao hơn yêu cầu sau - trừ khi, như các tài liệu của Oracle nói, bạn đang sử dụng các chuỗi như dấu thời gian để phản ánh đúng thứ tự của yêu cầu ban đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.