×

Stored Procedure در SQL Server

فصل بیست و ششم :

Stored Procedure

Stored Procedure و یا بطور مختصر SP

یک sp گروهی از دستورات tsql است که در یک execution plan . کامپایل میشود .
sp در واقع ابجکت کامپایل شده ایی است که شامل یک و یا چند دستور tsql می باشد.
Sp می تواند دارای پارامتر های ورودی و خروجی باشد.
مهمترین تفاوت sp با udf این است که SP را بایستی توسط execute صدا زد.
Sp ها همانند function ها نبایستی الزاما مقداری را باز گردانند .می توانند در داخل خود select ی داشته باشند که تعدادی رکورد را باز گردانند .
بهبود چشمگیری در عملکرد دیتابیس ایجاد میکنند . چون یکبار کامپایل شده اند و نیز execution plan آنها cache شده است .به نسبت دستوراتی که هر بار ارسال میشوند .
مثال :
create procedure proctest2 @id smallint, @age int output
as
begin
select FirstName,LastName,LastAvg,@age=Age from Student where id=@id
set @age=(select age from Student where id=@id)
end
go
declare @age int;
exec proctest2 1,@age output
select @age

سه sp برای اعمال insert , delete ,update در جدول student بنویسید .بصورتی که در insert id جدید بصورت پارامتری بازگردد
به فیلم مراجعه شود

معرفی sp های سیستمی
sp_who اطلاعات در مورد کاربران جاری و session های موجود در instance موجود
sp_configure تنظیمات کلی سرور جاری
sp_tables لیست کلیه ابجکت هایی که بتوان روی انها کوئری انجام داد
sp_columns 'student' اطلاعات ستونهای یک جدول مشخص شده

امکان تعریف پارامتر ، پس امن تر است .
از امکانات cached execution plan می تواند استفاده کند .
ساخت دستورات دینامیک
exec ('select * from student ')
exec sp_executesql N'select * from student'



declare @str as nvarchar(100);
set @str='select * from student where id=@id';
exec sp_executesql @str,N'@id smallint',1

SQL Injection

با مثال در فیلم موجود می باشد



مفاهیم و موضوعات این فصل عبارتند از :

  • Stored Procedure

  • sp_executesql

  • SQL Injection و جلوگیری از آن

vatantop
نظرات و سوالات درج سوال/ نظر