本篇文章主要介绍了"SQL SERVER 中构建执行动态SQL语句",主要涉及到方面的内容,对于SqlServer感兴趣的同学可以参考一下:
1 :普通SQL语句可以用exec执行Select * from tableName exec('select * from tableName') exec ...
1 :普通SQL语句可以用exec执行
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL

declare @fname varchar(20)
set @fname = 'FiledName'
--Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。 exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 --当然将字符串改成变量的形式也可 declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
exec(@s) -- 成功
--exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) (必须为ntext或nchar哐nvarchar类型,不能是varchar类型)set @s = 'select ' + @fname + ' from tableName'
exec(@s) -- 成功 exec sp_executesql @s -- 此句正确

3. 输入或输出参数
