با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره کامل آموزشSQL Server 2017 را دنبال می کنند. در این آموزش شما را با دستوری آشنا خواهیم کرد که فقط در بانک اطلاعاتی SQL Server پشتیبانی می شود. اما در عین حال بسیار پر کاربرد است. زمانیکه شما نیاز دارید که از یک یا چند خط دستور در SQL، چندین مرتبه استفاده کنید. بانک اطلاعاتی SQL Server به شما اجازه می دهد تا با استفاده از دستوری به نام Stored Procedures ، دستورات پر تکرار را فقط یکبار تعریف کرده و در قالب یک نام مختصر ، در بخش های دیگر، بارها از آن استفاده کنید. که در ادامه ی آموزش، شما را با رویه های ذخیره شده درSQL Server 2017 یا ویژگی Stored Procedure در SQL Server 2017 آشنا خواهیم کرد.
stored procedure یک ساختار است که در SQL Server به طور خاص تحت گره Stored Procedures ذخیره شده است و می تواند:
Stored procedure عملکرد یک برنامه را بهبود می بخشد چرا که به محض ایجاد شدن، بهینه سازی شده و در حافظه ذخیره می شود.
استفاده از stored procedure مزایای زیاد داشته که در اینجا به مهمترین آن ها اشاره شده است:
با استفاده از دستور CREATE PROCEDURE
می توان در SQL Server یک یا چند stored procedure تعریف نمود:
1 2 3 4 5 6 7 | CREATE PROCEDURE myStoredProcedure AS ... OR CREATE PROCEDURE myStoredProcedure @ParameterName DataType AS ... |
۱- یک stored procedure با نام AlbumFromArtist در دیتابیس Music ایجاد می کنیم.
قرار است ستون های AlbumName
, ReleaseDate
از جدول Albums که در جدول Artists ستون ArtistName آن برابر با پارامتر @ArtistName
است برگردانده شود:
1 2 3 4 5 6 7 8 9 | CREATE PROCEDURE spAlbumsFromArtist @ArtistName varchar(255) AS SELECT AlbumName, ReleaseDate FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId WHERE Artists.ArtistName = @ArtistName; GO |
در منوی سمت چپ نرم افزار در شاخه ی Programmability > Stored Procedures می توانید stored procedure ایجاد شده را مشاهده کنید.
پس از ایجاد stored procedure با استفاده از دستور EXECUTE
می توانید پرس و جو هایی را مانند نمونه ی زیر از stored procedure استخراج کنید:
1 | EXECUTE spAlbumsFromArtist @ArtistName = "Devin Townsend"; |
همچنین می توانید ساختار بالا را به شکل زیر تایپ نمایید:
1 | EXECUTE spAlbumsFromArtist "Devin Townsend"; |
برای تغییر دادن محتوای یک stored procedure موجود از دستور ALTER PROCEDURE
استفاده کنید.
به عنوان مثال با اجرای کد زیر، یک ستون جدید به ساختار stored procedure اضافه می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ALTER PROCEDURE spAlbumsFromArtist @ArtistName varchar(255) AS SELECT al.AlbumName, al.ReleaseDate, g.Genre FROM Albums al INNER JOIN Artists ar ON al.ArtistId = ar.ArtistId INNER JOIN Genres g ON g.GenreId = al.GenreId WHERE ar.ArtistName = @ArtistName; GO |
سپس یک پرس و جو از داده های stored procedure ایجاد می کنیم:
1 | EXECUTE spAlbumsFromArtist @ArtistName = "Devin Townsend"; |
ویژگی Stored Procedure در SQL Server 2017 ابزاری بسیار سودمند و کارآمد برای ایجاد پرس و جوهای سریع و با ضریب امنیت بالا به شمار می رود. و همچنین از کدهای پر تکرار در دیتابیس جلوگیری می کند. در بخش بعدی چگونگی ایجاد نسخه ی پشتیبان از دیتابیس را مرور خواهیم کرد.