ההבדלים העיקריים שעולים לי לראש:
1) SP נשמרת ומתקמפלת בתוך מסד הנתונים, מה שאומר שהיא תרוץ מהר יותר ובצורה יעילה יותר. 2) SP מאפשרת צמצום הרשאות הגישה של המשתמש - אתה יכול לתת למשתמש הרשאות ל SP עצמה, אבל לא לתת לו הרשאות לטבלאות שבהם מאוחסנים הנתונים - מה שכמובן מוביל לאבטחה טובה הרבה יותר. 3) גם בגלל הסעיף הקודם, וגם בגלל העובדה שב SP אתה יכול גם לבדוק את הנתונים שהיא מקבלת, הרבה יותר קשה לפרוץ בעזרת sql injection לתוכנה שמשתמשת ב sp מאשר בשאילתות בקוד. שוב - אבטחה טובה הרבה יותר. 4) אינקפסולציה של מסד הנתונים. (אם אתה מתכנת oo ולא יודע מה זה אינקפסולציה, או למה זה טוב, זה רע מאוד - גגל את המילה incapsulation) 5) הגישה של sp הרבה יותר מתאימה לגישת התכנות הכללית של oop - אתה יכול לחשוב על מסד נתונים בתור אובייקט, שהמידע בטבלאות שלו הם private members, וה sp הם המתודות. בטח יש עוד כמה דברים שלא חשבתי עליהם, אבל אני, לפחות, מאמין שאלו סיבות מספיק טובות לעבוד אך ורק עם stored procedures ואפפעם לא עם שאילתות בקוד.