ראשי > SQL Server > ה-Sequence נודד ל-SQL Server 2011

ה-Sequence נודד ל-SQL Server 2011

ה-Sequence הוא פיצ'ר מוכר לכל איש אורקל. ב-SQL Server הוא לא היה קיים ושם כשאנו מתבקשים ליצור Sequencing, אנחנו בונים עמודה עם הגדרת identity (לרוב זו הייתה עמודת המפתח הראשי של הטבלה).

שמחתי לשמוע שבגרסה הקרובה של SQL Server (גרסת 2011) יהיו גם Sequences, כי יש להם יתרונות רבים שמכיר כל אחד שבא מאורקל. חבריי שעובדים רק על SQL Server ולא עבדו על אורקל מעולם, לא מבינים בכלל למה זה טוב.

בשביל אותם חבר’ה, ערכתי טבלת השוואה בין Sequence לבין Identity column שתסביר למה זה דבר טוב:

Sequence

Identity

בלתי תלוי בטבלה כזו או אחרת

תלוי בטבלה אחת מסויימת.

אפשר לשנות בקלות את תכונות ה-sequence  (כמו לאפס אותו או להחזיר אותו לערך מסויים)

לא ניתן להוסיף או להוריד מהטבלה את הגדרת-identity מעמודה קיימת.

אפשר לשלוף בקלות את הערך הבא של ה-sequence גם במהלך פעולת update

אי אפשר לשלוף בקלות את הערך הבא של ה-identity ללא ביצוע של insert.

אפשר להגדיר ערך מינימום וערך מקסימום ואפילו להגדיר אותו כ-sequence ציקלי.

לא ניתן להגדיר ערך מינימום וערך מקסימום ובטח שלא להגדיר אותו כ-identity ציקלי.

אפשר להשתמש ב- sp_sequence_get_range (פרוצדורה מובנית חדשה) שמאפשרת "לתפוס" טווח שלם של sequence ובכך לאפשר לאפליקציה לנהל את הטווח הזה בעצמה.

לא ניתן "לתפוס" טווח של ערכים "במכה אחת".

 

הואיל וה-sequece אינו תלוי בטבלה והואיל ולרוב יש לו קשר לוגי לטבלה מסויימת, רצוי לתת שם ל-sequence שיעיד על הקשר הלוגי שלו. לדוגמה: אם הוא מנהל sequence לטבלה בשם MyTable אז אפשר לקרוא לו MyTable_Seq.

 

  1. 07/02/2011 ב- 16:18

    ניתן "לאפס" את ה-Identity על ידי DBCC CHECKIDENT,
    והערך ההתחלתי שלו הוא בעצם המינימום.

    כדאי לציין שלאנשי אוראקל אין Identity, ולכן מצבנו כעת טוב משלהם..

    לגבי השאר- מסכים,
    ובעיקר לגבי sp_sequence_get_range שלא ידעתי על קיומה.

    • 07/12/2014 ב- 06:12

      I came, I read this article, I coeerqund.

  2. 07/02/2011 ב- 17:26

    לא כתבתי שאי אפשר לאפס את ה-identity אלא כתבתי שלא ניתן להסיר אותו מהעמודה בטבלה (אלא אם בונים מחדש את הטבלה).
    אתה צודק שבקרוב SQL Server יאפשר גם identity וגם Sequence בעוד שבאורקל לא מתכוונים ליישם Identity ולכן זה יתרון ל-SQL Server בעניין הזה.
    שלא תבין לא נכון, אני מאד נהנה לעבוד עם SQL Server ואני שמח שהמערכת הזו מתקדמת ומשתפרת מגירסא לגירסא ונותנת "פייט" לאורקל (לפחות על פלטפורמת Windows).

    • 07/12/2014 ב- 07:26

      Noithng I could say would give you undue credit for this story.

  1. No trackbacks yet.

כתוב תגובה לBonner לבטל