SQL中exec的用法

SQL中exec的用法,第1张

一般exec(@s)代表执行一句动态sql。

可参考以下例子,如代码:

declare @s varchar(2000)

declare @tablename varchar(20)

set @tablename='test'

set @s='select * from ' + @tablename + ''

exec(@s)结果:

注意:代码中倒数第二句的写法,也就是执行的动态sql语句,引用的动态名称需要用引号及加号。最后一句的动态sql也要用括号括起来。

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11608022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存