sqlserver中
EXEC命令有兩種用法,一種是執行一個儲存過程,另一種是執行一個動態的批處理
1.使用系統儲存過程sp_executesql執行Unicode命令字串
語法如下:
sp_executesql[@stmt=]stmt
[
{,[@params=]N"@parameter_namedata_type[,...n]"}
{,[@param1=]"value"[,...n]}
]
說明:必須先將各個包含所要執行的命令語句的Unicode字串相加在一起,再交給系統儲存過程sp_executesql來執行,而不能在sp_executesql的語句中來相加各個命令字串。
舉例如下:
declare@DBNamenvarchar(20),
@Tbnamenvarchar(20),
@SQLStringnvarchar(500)
set@DBName=N"Northwind"
set@Tbname=N"Customers"
set@SQLString=N"USE"+@DBName+char(13)--char(13)換行
SET@SQLString=@SQLString+N"select*from"+@Tbname
--必須先將命令字串組合完畢後再交給sp_executesql來執行
execsp_executesql@SQLString
2.使用EXECUTE命令執行命令字串
要使用EXECUTE命令來執行一個命令字串的語法如下:
EXEC[UTE]({@string_variable|[N]"stql_string"}[+...n])
從語法看出,可以先將包含所要執行的命令的字串賦給一個區域性變數@string_variable,再使用EXECUTE命令來執行,或是直接使用EXECUTE命令去執行一個包含所要執行的命令語句的字串。此外,您也可以將多個包含所要執行的命令語句的字串相加在一起,再交給EXECUTE命令來一次執行。
例:
declare@sqlnvarchar(4000)
set@sql="select*from[表]whereemail=""[email protected]"""
exec(@sql)
sqlserver中
EXEC命令有兩種用法,一種是執行一個儲存過程,另一種是執行一個動態的批處理
1.使用系統儲存過程sp_executesql執行Unicode命令字串
語法如下:
sp_executesql[@stmt=]stmt
[
{,[@params=]N"@parameter_namedata_type[,...n]"}
{,[@param1=]"value"[,...n]}
]
說明:必須先將各個包含所要執行的命令語句的Unicode字串相加在一起,再交給系統儲存過程sp_executesql來執行,而不能在sp_executesql的語句中來相加各個命令字串。
舉例如下:
declare@DBNamenvarchar(20),
@Tbnamenvarchar(20),
@SQLStringnvarchar(500)
set@DBName=N"Northwind"
set@Tbname=N"Customers"
set@SQLString=N"USE"+@DBName+char(13)--char(13)換行
SET@SQLString=@SQLString+N"select*from"+@Tbname
--必須先將命令字串組合完畢後再交給sp_executesql來執行
execsp_executesql@SQLString
2.使用EXECUTE命令執行命令字串
要使用EXECUTE命令來執行一個命令字串的語法如下:
EXEC[UTE]({@string_variable|[N]"stql_string"}[+...n])
從語法看出,可以先將包含所要執行的命令的字串賦給一個區域性變數@string_variable,再使用EXECUTE命令來執行,或是直接使用EXECUTE命令去執行一個包含所要執行的命令語句的字串。此外,您也可以將多個包含所要執行的命令語句的字串相加在一起,再交給EXECUTE命令來一次執行。
例:
declare@sqlnvarchar(4000)
set@sql="select*from[表]whereemail=""[email protected]"""
exec(@sql)