הצהרה והקצאה של משתנים ומילים נרדפות

הושלמה

ב- T-SQL, בדומה לשפות תיכנות אחרות, משתנים הם אובייקטים המאפשרים אחסון זמני של ערך לשימוש עתידי. כבר נתקלת במשתנים כאשר השתמשת בהם כדי להעביר ערכי פרמטר לפרוצדורות ולפונקציות מאוחסנות.

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

--Declare and initialize the variables.
DECLARE @numrows INT = 3, @catid INT = 2;
--Use variables to pass the parameters to the procedure.
EXEC Production.ProdsByCategory @numrows = @numrows, @catid = @catid;
GO

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

עבודה עם משתנים

לאחר שהצהרת על משתנה, עליך לאתחל אותו או להקצות לו ערך. ניתן לעשות זאת בשלוש דרכים:

  • ב- SQL Server 2008 ואילך, באפשרותך לאתחל משתנה באמצעות המשפט DECLARE.
  • בכל גירסה של SQL Server, באפשרותך להקצות ערך יחיד (סקארי) באמצעות משפט SET.
  • בכל גירסה של SQL Server, באפשרותך להקצות ערך למשתנה באמצעות משפט SELECT. ודא ששורת SELECT מחזירה שורה אחת בדיוק. תוצאה ריקה תשאיר את המשתנה עם הערך המקורי שלו; יותר מתוצאה אחת תחזיר את התוצאה האחרונה.

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

DECLARE @var1 AS INT = 99;
DECLARE @var2 AS NVARCHAR(255);
SET @var2 = N'string';
DECLARE @var3 AS NVARCHAR(20);
SELECT @var3 = lastname FROM HR.Employees WHERE empid=1;
SELECT @var1 AS var1, @var2 AS var2, @var3 AS var3;
GO

פעולה זו יוצרת את התוצאות הבאות.

var1 var2 var3
99 מחרוזת דייוויס

תשר

לקבלת הדרכה מלאה לגבי משתנים מקומיים, עיין בתיעוד של חומר עזר בנושא T-SQL.

עבודה עם מילים נרדפות

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

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

הערה

באפשרותך ליצור מילה נרדפת שמצביעה על אובייקט שעדיין אינו קיים. פעולה זו נקראת זיהוי שם דחוי. מנגנון SQL Server לא יבדוק את קיומו של האובייקט בפועל עד לשימוש במילה הנרדפת בזמן ריצה.

כדי לנהל מילים נרדפות, השתמש בפקודות שפת הגדרת הנתונים (DDL) CREATE SYNONYM, ALTER SYNONYM ו- DROP SYNONYM, כמו בדוגמה הבאה:

CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;

כדי ליצור מילה נרדפת, דרושה לך הרשאת 'CREATE SYNONYM' וכן הרשאה לשינוי הסכימה שבה יאוחסנה המילים הנרדפות.

הערה

כדי ליצור מילה נרדפת, למשתמש חייבת להיות הרשאת CREATE SYNONYM והיא הבעלים או שיש לו הרשאת ALTER SCHEMA בסכימת היעד.

מילה נרדפת היא אובייקט "ריק" שנפתר לאובייקט המקור כאשר מתבצעת הפניה בזמן ריצה.