Transact-SQL
Transact-SQL או TSQL זו שפת פיתוח לבסיסי נתונים רלציוניים של מיקרוסופט וSybase.
SQL, ראשי תיבות של Structured Query Language (שפת שאילתות מובנית), היא שפת מחשב דקלרטיבית [1] תקנית [2] , כאשר TSQL מרחיבה את התקן וכוללת תכנות פרוצדורלי, משתנים מקומיים, פונקציות לעיבוד מחרוזות או תאריכים או ערכים מספריים וכו'; ושינויים בפקודות DML [3] . כל ההרחבות האלו הופכות את TSQL ל-Turing Complete [4] . הסקירה להלן מתמקדת בהרחבות של TSQL מעבר לתקן ANSI (של שפת SQL).
בנוסף - TSQL כוללת פקודות מתאימות לשימוש בכלים השונים של SQL Server, בעזרת מה שמכונה פקודות DDL [5] .
TSQL היא השפה באמצעותה מתבצעות כל הפעולות וההתקשרות מול SQL Server, ללא קשר לממשק המשתמש דרכו הן מתבצעות.
תכנות פרוצדורלי
TSQL מאפשר ליצור ולשלב פרוצדורות (Stored Procedures), פונקציות (Functions), טריגרים (Triggers), פונקציות CLR ועוד אובייקטים בהם ניתן להגדיר משתנים, להשתמש בלולאות, להפעיל תנאים (If, Else), ליצור בלוקים, לטפל בשגיאות בלתי צפויות.ועוד.
שינויים בפקודות DML
ניתן להשתמש באופרטור From בפקודות Delete, Update.
יש שימוש בפקודת Merge המשלבת Delete, Update, Insert לסט נתונים [6] על פי תנאים.
ניתן לצרף לפקודות ה-DML "רמזים" (Hints[7]) כדי לגרום למערכת לפעול בדרך מסויימת (למשל- להשתמש באינדקס מסויים ולא באחר).
יבוא ויצוא נתונים
TSQL מאפשרת לייבא ולייצא נתונים למגוון של יעדים ומקורות:
- שרתי SQL Server אחרים
- בסיסי נתונים של חברות אחרות
- קבצי טקסט
- גליונות אלקטרוניים
- קבצי XML
ועוד.
שינויים בפקודות DDL
בעזרת פקודות TSQL ניתן לטפל באובייקטים השונים של SQL Server, למשל:
- יצירת אינדקסים על טבלאות.
- לבצע גיבויים מסוגים שונים ולשחזר נתונים במקרה הצורך,
- להגדיר משתמשים ולהעניק ולשלול מהם הרשאות - באופן נרחב ממה שנקבע בתקן,
- להגדיר רפליקציות,
- ליצור ג'ובים, לתזמן אותם ולהריץ אותם,
- לשלוח דואר אלקטרוני
ועוד.
למעשה - כל הפעולות המתבצעות ב-SQL Server נעשות באמצעות פקודות TSQL גם כשהן מתבצעות דרך ממשק המשתמש הגרפי על ידי העכבר וללא כתיבה מפורשת של פקודות.
סוגי נתונים לא סטנדרטיים
SQL Server מאפשר להשתמש בסוגי נתונים לא תקניים כמו XML, או מידע גאוגרפי וגאומטרי. TSQL תומכת בשימוש בהם: שמירה של סטים במשתני XML ושליפתם מהם, חישוב מרחקים בין נקודות גאוגרפיות וגיאומטריות וכו'.
הערות שוליים
- ^ משתמשת בפקודות דקלרטיביות (הצהרתיות) מה לעשות, בניגוד לשפות תכנות פרוצדורליות הכוללות פקודות איך לעשות.
- ^ הכוונה לתקן ANSI (של מכון התקנים האמריקני American National Standards Institute).
- ^ Data Manipulating Language - שפת טיפול בנתונים - פקודות Select, Insert, Update, Delete לשליפה ושינוי נתונים.
- ^ שפת תכנות נחשבת ל-Turing Complete אם היא יכולה לבצע מה שמכונת טיורינג מבצעת.
- ^ פקודות DDL (כלומר- Data Definition Language) מתייחסות לפקודות לטיפול באובייקטים השונים, בניגוד לפקודות DML המתייחסות לטיפול בנתונים. הכוונה בראש ובראשונה לטבלאות בהן הנתונים מאוחסנים; ובאופן כללי לכל האובייקטים.
- ^ סט הוא אוסף של שורות, למשל טבלה או חלק מטבלה שנשלף.
- ^ בשפות דקלרטיביות המתכנת אינו מגדיר איך לבצע את המשימה וזה נעשה אוטומטית על ידי המערכת, אך יש דרכים להשפיע עליה במקרה הצורך וה-Hints הם דוגמה לכך.