您的位置:首页 > 数据库

Sql Server 动态执行sql语句

2012-12-05 18:51 281 查看
存储过程中经常需要执行动态sql 语句,下面是一些常用的方法以及一些注意事项,欢迎补充。

数据库以master为例。

declare @name nvarchar(100)
declare @sql nvarchar(1000)
--比较简单的 直接执行
SET @sql ='SELECT * FROM spt_values'
print @sql
Exec(@sql)
--带参数的 需要注意的是单引号的转意操作。
SET @sql ='SELECT * FROM spt_values WHERE name =''rpc'''
print @sql
Exec(@sql)

--带动态参数的 引号一定写对了  比较恶心
SET @name ='rpc'
SET @sql ='SELECT * FROM spt_values WHERE name ='''+@name+''''
print @sql
EXEC (@sql)

--带返回参数的 可以通过下列方式接收
--需要注意的是带返回参数的@sql 变量一定是nvarchar 类型的。 varchar类型的会报错。
declare @count int
SET @sql ='SELECT @count = COUNT(*) FROM spt_values WHERE type =''A'''
--Exec (@sql)
print @sql
exec sp_executesql @sql,N'@count int output',@count output
print @count
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: