פרוצדורות מאוחסנות: כמו פונקציות עבור ה-SQL שלך.
פרוצדורה מאוחסנת היא אצווה של הצהרות SQL שנוצרו ומאוחסנות במסד נתונים. אתה יכול לעשות שימוש חוזר בהליך מאוחסן שוב ושוב.
הליך מאוחסן יכול לקבל פרמטרים, להריץ שאילתה ולהחזיר תוצאות. משתמשים רבים יכולים לקרוא להליך מאוחסן ויישומים שונים יכולים לקרוא לו עם ערכי פרמטרים שונים.
מהם היתרונות של שימוש בפרוצדורות מאוחסנות?
מלבד לאפשר למספר משתמשים ויישומים לעשות בו שימוש חוזר, לנוהל מאוחסן יש יתרונות נוספים.
- קל לשנות. אתה יכול לשנות נוהל מאוחסן בעת הצורך ועדכונים אלה ישתקפו עבור כל המשתמשים. יתר על כן, אינך צריך לפרוס מחדש את היישום שלך כאשר אתה משנה את ההליך המאוחסן.
- זה מפחית את תעבורת הרשת מכיוון שהשרת מעביר רק את שם ההליך דרך הרשת ולא את כל השאילתה.
- זה משפר את אבטחת מסד הנתונים מכיוון שלמשתמשים אין גישה ישירה לטבלאות. כדי לבצע שינויים, הם צריכים לקרוא לנוהל המאוחסן. זה מונע התקפות הזרקת SQL מכיוון שמשתמשים לא יכולים לכתוב ישירות לטבלאות הבסיסיות.
מנוע מסד נתונים כמו ל-MySQL תכונות אבטחה רבות אתה צריך להיות מודע.
תחביר של יצירת פרוצדורה מאוחסנת ב-SQL Server
התחביר של יצירת פרוצדורה מאוחסנת הוא כדלקמן:
לִיצוֹרתהליך שם_הליך
כפי ש
sql_statement
ללכת;
הפעל פקודה זו כדי לבצע את ההליך המאוחסן.
EXEC procedure_name;
דוגמה להליך מאוחסן פשוט ב-SQL Server
הנה דוגמה להליך מאוחסן שבוחר את כל המאמרים מתוך מסד נתונים של מאמרים.
לִיצוֹרתהליך כל המאמרים
כפי ש
בחר * מ מאמר
ללכת;
זוהי דוגמה פשוטה, אבל אתה יכול לעשות הרבה יותר עם נהלים מאוחסנים כמו קבלת פרמטרים ועדכון רשומות.
כיצד ליצור נוהל מאוחסן המקבל פרמטרים
לדוגמה, שנה את ההליך המאוחסן הפשוט כדי לקבל מספר כפרמטר והשתמש בו כדי להחזיר את הפוסטים עם ספירת צפיות גבוהה מהמספר.
לִיצוֹרתהליך Popular_Articles(@views int)
כפי ש
בחר * מ מאמר
WHERE צפיות_ספירת >= @צפיות_לספור
ללכת;
השתמש בפקודה זו כדי לבצע את ההליך המאוחסן עם פרמטר.
EXEC Popular_Articles 300;
הנוהל מחזיר את המאמרים שספירת הצפיות שלהם גבוהה מ-300.
למד SQL תחילה לפני השימוש בפרוצדורות מאוחסנות
נהלים מאוחסנים מאפשרים לך לעשות שימוש חוזר בקבוצה של הצהרות SQL. הם גם משפרים את אבטחת מסד הנתונים, מפחיתים את תעבורת הרשת וקלים לשינוי.
למידה על נהלים מאוחסנים היא אפוא חשובה, אך תחילה עליך להיות בעל הבנה מוצקה של SQL.