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

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

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

החור הראשון

יום ראשון, אוקטובר 3, 2010

הלו- מה זה? אתה בענייני SQL או….?.. קודם כל להירגע (ככתוב בספר בישול ידוע): בסך הכל שאלו אותי בעבודה כיצד למצוא בטבלה עם עמודת מספרים את הערך הראשון שחסר, הווה אומר- החור הראשון ברצף. את הפטנט למדתי לפני שנים מאיציק בן גן: מבצעים Left Join של הטבלה עם עצמה לפי N=N+1 (כלומר– לכל שורה נתאים את הבאה אחריה), נחפש את אלו להם לא נמצאה התאמה, נבצע Top 1 כי מעוניינים בראשון, ולא נשכח להוסיף 1 לערך שקיבלנו (הרי לא מצאנו את הראשון שחסר אלא את האחרון שאינו חסר..). ניצור טבלת מספרים בת כמיליון שורות, ונשמיט ברשלנותנו מספר ערכים בדרך: Create Table #T(I Int...
אין תגובות