SQL – User Defined Stored Procedures

SQL Server
SQL Server

SQL User Defined Stored Procedures או פרוצדורות מאוחסנות, הן כלי עוצמתי אשר יש לרשותנו ב-SQL ונוכל להשתמש בו על מנת לבצע מגוון של אופרציות שמורות מראש.

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

SQL Functions vs Procedures

התחביר הבסיסי ליצירת פרוצדורה יראה כך:

CREATE PROCEDURE procedure_name (parameters)
AS
  BEGIN
    SQL statements
  END

 יצירת פרוצדורה מאוחסנת

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

SQL Tables
SQL Tables

Student

StudentCourse

את הפרוצדורה שלנו נוכל ליצור כך שתקבל מספר כפרמטר.
בדומה לפונקציה, נוכל גם כאן להשתמש לאחר מכן בפרמטר בתוך הפונקציה שלנו
הפרמטר שהפונקציה תקבל יהיה מסוג INT וניתן לו את השם myInt.
שימו לב כי שם המשתנה תמיד צריך להתחיל בשטרודל – @.

CREATE PROCEDURE returnCourseStudents (@myInt INT)
AS 
  BEGIN
	SELECT CourseId, CourseName, StudentId 
	FROM StudentCourse 
	WHERE @myInt = CourseId
  END

לאחר מכן נוכל לקרוא לפרוצדורה על ידי שימוש ב-EXEC:

EXEC returnCourseStudents 2

בדוגמא זו, השתמשנו בפרוצדורה מאוחסנת אשר תפקידה להחזיר לנו טבלה שמראה לנו כמה תלמידים רשומים לקורס מסוים לפי מספר הקורס (ה-CourseId).
שימו לב כי בניגוד לפונקציה, לא היינו צריכים להשתמש בסוגריים על מנת לתחום את המספר שאנו שולחים כפרמטר לפרוצדורה.
ובדומה לקריאה לפונקציה, גם כאן ה-SSMS יסמן לנו את שם הפרוצדורה כלא תקין.
אך אם נתעלם ונריץ את הקוד – הוא ירוץ ללא שום בעיה:

SQL User Defined Stored Procedures
SQL User Defined Stored Procedures

סיכום

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

רוצים לשתף את המדריך?

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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

כתיבת תגובה

הזמינו אותי לכוס קפה
buy me coffee

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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