מדריך T-SQL - משתנים מסוג טבלה



מה זה משתנה טבלאי?

בפוסט הקודם על משתנים ב- SQL Server, ציינתי שבדרך כלל משתנים מסוגלים להכיל ערך אחד בלבד. ערך שיוכנס למשתנה שכבר מכיל ערך אחר יתפוס את מקומו (ידרוס אותו). הכלל הזה נכון בכל המקרים למעט משתנים מסוג טבלה (table). משתנה טבלאי מסוגל להכיל מערך נתונים שלם (dataset)ולמשך ריצת התכנית מתנהג כמו טבלה זמנית – ניתן לבצע עליו את כל הפעולות שנרצה לעשות על טבלה רגילה וגם הוא מאוחסן רק בזיכרון באופן זמני ולא נשמר באופן קבוע בבסיס הנתונים.


הגדרת משתנה מסוג טבלה

כאשר נגדיר משתנה טבלאי, עלינו להגדיר גם את מבנה הטבלה עצמה, כחלק מההצהרה על המשתנה:

ניתן להגדיר עמודות, עמודות מחושבות ואילוצים ממש כמו בטבלה רגילה:

עבודה עם משתנה טבלאי

פעולות DML מתבצעות גם הן באופן זהה לטבלה רגילה. כדי להציג נתונים מתוך המשתנה נבצע SELECT כאשר המשתנה מופיע בחלק ה-FROM:



נזכיר שוב שהמשתנה אינו נשמר בשום מקום ולכן כל פעולה שנרצה לבצע על הטבלה חייבת להגיע באותה הרצה עם ההגדרה עצמה. אם ננסה להריץ רק את ה-SELECT האחרון למשל (שורה שלישית מהסוף), נקבל שגיאה כי השרת לא יזהה את שם המשתנה tableVar@.

לא ניתן להשתמש בפקודת PRINT כדי להציג תכולה של משתנה טבלאי מאחר והפקודה מסוגלת להציג משתנים סקלריים (המחזירים ערך יחיד) בלבד.

© כל הזכויות שמורות לאלעד פלג הדרכות 2020