sqlserver中
EXEC命令有两种用法,一种是执行一个
存储过程,另一种是执行一个动态的
批处理1.使用系统存储过程sp_executesql运行Unicode命令
字符串语法如下:
sp_executesql [@stmt=] stmt
[
{,[@params=] N'@parameter_name data_type [,...n]'}
{,[@param1=] 'value' [,...n]}
]
说明:必须先将各个包含所要运行的命令语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。
举例如下:
declare @DBName nvarchar(20),
@Tbname nvarchar(20),
@SQLString nvarchar(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来运行
exec sp_executesql @SQLString
2.使用EXECUTE命令运行命令字符串
要使用EXECUTE命令来运行一个命令字符串的语法如下:
EXEC[UTE] ({@string_variable|[N] 'stql_string'} [+...n])
从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。
例:
declare @sql nvarchar(4000)
set @sql='select * from [表] where email=''
[email protected]'''
exec (@sql)