با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. در این آموزش شما را با دستوری آشنا خواهیم کرد که فقط در بانک اطلاعاتی SQL Server پشتیبانی می شود. اما در عین حال بسیار پر کاربرد است. زمانیکه شما نیاز دارید که از یک یا چند خط دستور در SQL، چندین مرتبه استفاده کنید. بانک اطلاعاتی SQL Server به شما اجازه می دهد تا با استفاده از دستور Stored Procedures در SQL و کار با Stored Procedures در SQL Server ، دستورات پر تکرار را فقط یکبار تعریف کرده و در قالب یک نام مختصر ، در بخش های دیگر، بارها از آن استفاده کنید. که در ادامه ی آموزش، چگونگی انجام اینکار را بررسی خواهیم کرد.
stored procedure به شما کمک می کند، کدهای پر تکرار را در SQL Server، یک مرتبه تعریف کرده، و سپس بارها از آن استفاده کنید.
بنابراین اگر نیاز دارید چند خط کد SQL را بارها و بارها استفاده کنید. با stored procedure یکبار آنها را ذخیره کرده و سپس به راحتی از نام آن استفاده کنید.
همچنین در stored procedure می توانید پارامترهایی را برای تغییر مقادیری از دستورات ذخیره شده، تعریف کنید.
ساختار ذخیره کردن در stored procedure:
1 2 3 4 | CREATE PROCEDURE procedure_name AS sql_statement GO; |
ساختار فراخوانی دستورات ذخیره شده در stored procedure:
1 | EXEC procedure_name; |
در این قسمت، به بخشی از رکوردهای یک جدول که در مثال های این آموزش، از آن، استفاده خواهیم کرد، اشاره می کنیم.
بخشی از رکوردهای جدول “Customers” :
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
۱ | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | ۱۲۲۰۹ | Germany |
۲ | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | ۰۵۰۲۱ | Mexico |
۳ | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | ۰۵۰۲۳ | Mexico |
۴ | Around the Horn | Thomas Hardy | ۱۲۰ Hanover Sq. | London | WA1 1DP | UK |
۵ | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
مثال:
یک stored procedure را با نام SelectAllCustomers ایجاد می کند. که در آن تمام رکوردهای جدول Customers انتخاب می شود:
1 2 3 4 | CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO; |
نحوه ی فراخوانی stored procedure مثال فوق، بصورت زیر است:
1 | EXEC SelectAllCustomers; |
مثال:
یک stored procedure ایجاد می کند که در آن رکوردهای جدول Customers، زمانیکه فیلد City برابر با پارامتر دریافتی باشد انتخاب شوند:
1 2 3 4 | CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO; |
نحوه ی فراخوانی stored procedure فوق بصورت زیر است:
1 | EXEC SelectAllCustomers City = "London"; |
استفاده از چندین پارامتر در stored procedure بسیار آسان است، به ترتیب که پارامتر های دیگر را با دستور AND به پارامترهای موجود اضافه می کنیم.
مثال زیر یک stored procedure ایجاد می کند که در آن رکوردهای جدول Customers، زمانیکه فیلد City و PostalCode، برابر با پارامتر دریافتی باشد، انتخاب می شوند:
1 2 3 4 | CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GO; |
فراخوانی stored procedure که در بالا تعریف شده است نیز، بصورت زیر است:
1 | EXEC SelectAllCustomers City = "London", PostalCode = "WA1 1DP"; |
با استفاده از دستور stored procedure در SQL دیگر نیازی نیست که نگران زیاد شدن حجم کدهای SQL خود شوید. کدهای پر تکرار را فقط یکبار در stored procedure تعریف کرده و با نامی دلخواه آنها را ذخیره کنید، از این پس می توانید به راحتی با استفاده از نام آن کدها از محتویات آن، استفاده کنید.
kawan
درود
خب عزیز جان الان من صفر کیلومترم
شما نوشتید
نحوه ی فراخوانی stored procedure فوق بصورت زیر است:
مثال :
EXEC SelectAllCustomers City = “London”;
خب کجا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ کجا باید نوشتته بشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
زهرا یوسفیان
سلام مهم نیست کجا، در هر فایل query میتونه نوشته بشه
مهم اینه که برای اجرا باید دستور فراخوانی رو سلکتش کنید بعد execute بزنین