ایجاد Stored Procedure :
مانند هر زبان دیگر رویه ها در Sqlserver نیز موجود می باشند. و بکار میروند. سه رویه insert , Update و Delete را می توانید براحتی با ویزاردهای خود Sqlserver بسازید. از اینجا به بعد از واژه SP بجای رویه استفاده خواهیم کرد. ابتدا با ساختار کلی SP آشنا شده و سپس به ویزارد موجود خواهیم پرداخت.
Create Procedure [SP Name] ( [SP Argument] ) AS
Begin
.........
End
برای ایجاد یک SP جدید ابتدا برروی گزینه Stored Procedure کلیک سمت راست کرده و گزینه new Stored Procedure را انتخاب کنید. در پنچره بعدی شما می توانید متن SP را وارد کنید.
نام sp : ابتدا بجای [SP Name] یک نام برای SP خود در نظر بگیرید.
جدول عنوان مثال اگر نام جدول Sale و عملیات مورد نظر یک عملیات insert باشد نام SP را Sale_INSERT میگذاریم. بهتر است نام عملیات با حروف بزرگ تایپ شود . البته بعضی ها از سه حرف عملیات استفاده می کنند. برای مثال بالا خواهیم داشت:
Sale_INSERT تعریف پارامترها: برای تعریف پارامترهای ورودی SP قبل از کلمه کلیدی AS آنها را داخل پرانتز مشخص کنید. بدین شکل که ابتدا علامت @ سپس نام پارامتر بعد فاصله و نوع پارامتر.
تذکر :
تمامی متغییرها در SP از ساختار نام متغییر@ پیروی میکنند. بعنوان مثال فرض کنید یک SP دارای دو پارامتر با نامهای Id از نوع int و Name از نوع (Varchar 20) باشد
( ( @id int@name varchar(20)
حال بعد از As دستورات مورد نظر را تایپ میکنیم
مثال 1 :
SP بنویسید که چهار حرف اول فیلد LastName و فیلد FirstName را از جدول Employees انتخاب کند به شرطی که فیلد LastName با حرف A شروع شود ؟
ابتدا برروی Stored procedure کلیک سمت راست کرده و گزینه New stored procedure را انتخاب کرده و خطوط زیر را تایپ کنید. بعضی از دستورات پایین در کادر باز شده موجود هستند که نیازی به تایپ مجدد آنها نیست .
Create Procedure Employees_BROWSE AS
Begin
Select substring (Lastname, 1, 4) as LastName, FirstName
From Employees
Where LastName Like '%A'
End
حال بر روی دکمه ok کلیک نمایید. حال SP با نام Employees_BROWSE در لیست SP اضافه شده است .
مثال 2 :
تمام فیلدهای Employees را انتخاب کنید که فیلد BirthDate در یک بازه تاریخی که به شکل پارامتر وارد میشود قرار گیرد
Create Procedure Employees_BROWSE2 (@StartDate char (10), @EndDate char (10)) As
Begin
Select * From Employees
where BirthDate between @StartDate and @EndDate
End
حال برای اجرای SP ها در Query Analyzer کافی است بنویسیم
[نام Exec [SP
بعنوان مثال :
Exec Employees_BROWSE
اگر پارامتر داشت مقدار پارامترها را هم می آوریم
'Exec Employees_Browse2 '01/01/1940', '15/06/1955