مجموعه ای از دستورات SQL که به صورت یک رشته در یک متغیر ذخیره شده است
مجموعه ای از دستورات SQL که به صورت یک رشته در یک متغیر ذخیره شده است.
ما می توانیم با دستورات exec به راحتی به نتایج آنها دست پیدا کنیم.(کوئری به صورت رشته ای در یک متغییر دخیره میشود و توسط دستورات exec اجرا میشود)
کاربرد:
1. در صورتی قسمت از کوئری به صورت runtime تولید میشود (به طور مثال column ها خروجی)
2. بهبود اجرا کوئری
3. زمانی که مقادیر فیلتر داینامیک هست بهتر از این روش استفاده کنیم چون باعت بهبود سرعت میشود.
4. و...
روش اجرا:
1. Exec
2. sp_executesql
Exec
روش تعریف:
DECLARE @sqlCommand varchar(1000)=’query’
Exec(@sqlCommand)
sp_executesql
روش تعریف:
sp_executesql [ @stmt = ] statement
[
{ , [ @params = ] N'@parameter_name data_type [ OUT | OUTPUT ][ ,...n ]' }
{ , [ @param1 = ] 'value1' [ ,...n ] }
]
نمونه کد:
—1
—اجرا کوئری با دستور
—exec
DECLARE @sqlCommand varchar(1000)='select Name,object_Id,max_length from sys.all_columns'
Exec(@sqlCommand)
—2
—اجرا کوئری با دستور
—sp_executesql
DECLARE @sqlCommand nvarchar(1000)
DECLARE @columnList nvarchar(750)
DECLARE @object_Id nvarchar(100)
SET @columnList = 'Name,object_Id,max_length'
SET @object_Id = 3
set @sqlCommand='select * from sys.all_columns where object_Id = @object_Id'
EXECUTE sp_executesql @sqlCommand, N'@object_Id nvarchar(100)', @object_Id = @object_Id