เหตุใดลำดับของ MS SQL Server จึงไม่มีพารามิเตอร์ ORDER เช่น Oracle


9

ในเอกสารประกอบของCREATE SEQUENCET-SQLคุณจะเห็นว่าCREATE SEQUENCEคำสั่งไม่มีORDERพารามิเตอร์

สำหรับการเปรียบเทียบเอกสาร Oracle สำหรับการCREATE SEQUENCEแสดงตัวเลือกORDER/ NOORDER:

ORDER

ระบุORDERเพื่อรับประกันว่าหมายเลขลำดับจะถูกสร้างขึ้นตามลำดับการร้องขอ ข้อนี้มีประโยชน์ถ้าคุณใช้หมายเลขลำดับเป็นเวลาประทับ คำสั่งที่รับประกันนั้นมักจะไม่สำคัญสำหรับลำดับที่ใช้สร้างคีย์หลัก

ORDERจำเป็นสำหรับการรับประกันการสั่งซื้อเท่านั้นหากคุณใช้ Oracle Database กับ Real Application Clusters หากคุณใช้โหมดเอกสิทธิ์เฉพาะบุคคลหมายเลขลำดับจะถูกสร้างขึ้นตามลำดับเสมอ

NOORDER

ระบุNOORDERหากคุณไม่ต้องการรับประกันหมายเลขลำดับจะถูกสร้างขึ้นตามลำดับการร้องขอ นี่คือค่าเริ่มต้น

Microsoft SQL Server มีข้อ จำกัด ในการสั่งซื้ออย่างมากSEQUENCEหรือไม่ หรือ Microsoft ไม่เห็นว่าสำคัญโดยทั่วไปใช่หรือไม่


2
ด้วย Oracle สิ่งนี้ทำให้รู้สึกถึง RAC เท่านั้น - เท่าที่ฉันรู้ว่าไม่มีอะไรเทียบเท่า RAC ใน SQL Server ทำไมคุณคิดว่าคุณต้องการมัน?
a_horse_with_no_name

ฉันแค่สร้างโปรแกรมที่เข้ากันได้กับ SQL Server มันสร้างลำดับบางส่วนและในCREATE SEQUENCEงบฉันวิ่งเข้าไปในพารามิเตอร์การสั่งซื้อและฉันแค่ต้องการให้แน่ใจว่ามันจะไม่เป็นปัญหา (ฉันไม่แน่ใจว่าทำไมORDERถูกเพิ่มเข้ามาในสถานที่แรกดังนั้นฉันคิดว่าฉัน อาจถามในกรณี)
Daniel Gray

คำตอบ:


12

ใน SQL Server หมายเลขลำดับทั้งหมดจะถูกสร้างขึ้นในอินสแตนซ์เดียวดังนั้นพวกเขาจึงได้รับคำสั่งโดยเนื้อแท้แล้ว และถ้าคุณแค่ใช้มันเป็นตัวเลขที่ไม่เหมือนใครมันก็ไม่ควรสำคัญ

การติดตั้ง Oracle นั้นแตกต่างกันเนื่องจากในสภาพแวดล้อม RAC (ไม่ใช่การติดตั้งใช้งานของออราเคิลทั้งหมด) หมายเลขลำดับที่สองสามารถสร้างได้โดย“ อินสแตนซ์” สองแบบที่แตกต่างกัน (นั่นเป็นคำที่ไม่ถูกต้องสำหรับ Oracle โดยปกติแล้วคุณจะไม่สนใจว่าสิ่งที่ขอมาก่อนนั้นช้ากว่าและได้จำนวนที่สูงกว่าที่ขอในภายหลังเว้นแต่ว่าเอกสารของ Oracle บอกว่าคุณกำลังใช้ลำดับเป็น timestamps เพื่อสะท้อนลำดับของคำขอต้นฉบับอย่างแท้จริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.