מניעת חריגות מערכים אפשריים בעמודות Identity וב-Sequences

יום שלישי, אוקטובר 25, 2016

לעמודות בטבלאות יש מגבלות של גובה הערכים (בעמודות מספרים או תאריכים) או של אורך מחרוזות (בעמודות טקסטואליות), ובדרך כלל תקלות אמורות להימנע באופן אפליקטיבי.הפוסט הזה מטפל במניעת חריגות בעמודות Identity וב-Sequences: למשל, הגדרנו עמודת Int כ-Identity, הערך בעמודה הולך וגדל, וקצת אחרי 2 מיליארד הגענו לגבול העליון של Int. כשזה יקרה הקוד שינסה להכניס נתונים לטבלה יפול, והטיפול עלול להיות מורכב: שינוי העמודה (כולל הנתונים בה), שינויים במשתנים בפרוצדורות שמטפלות בה, שינויים ברפליקציות ועוד. סיפור שלם!תרומתי הצנועה למערכה היא סקריפט שמציג את הערכים הנוכחיים לצד הערכים המקסימליים האפשריים, בכל האובייקטים הרלוונטיים: Declare @SQL Varchar(Max);Select ...
אין תגובות

מידע לגבי ערכי Identity

יום חמישי, אפריל 10, 2014

Identity@@ ו-()Scope_Identity מחזירים את ערך ה-Identity האחרון שהוכנס לטבלה ב-Session בו אנו נמצאים,ו-(‘..’)Ident_Current מחזיר את ערך ה-Identity האחרון שהוכנס לטבלה בכלל (גם ב-Sessions אחרים).עשויים להיות הבדלים בין שני הראשונים כשמדובר במקרים מורכבים כמו פעולת Insert לטבלה אחת שמפעילה טריגר שמכניסה שורות לטבלה אחרת, אך לא אכנס לזה כאן, וכפי שנראה – במקרים פשוטים אין בינהן הבדלים. ניצור טבלה ובה עמודת Identity: Use tempdb; If Object_ID('T1') Is Not Null Drop Table T1; Create Table T1(ID Int Identity, I Int); נבדוק מה ה-Identity: Select @@Identity , ...
אין תגובות