RL4*_*L4P 5 t-sql sql-server-2008
我已经尝试运行我的SQL(在T-SQL中)(我只是生成了一个变量)但我无法运行它.我想要做的是:1.从程序2运行大SQL.大SQL生成selct-SQL 3.运行生成的sql像正常选择和接收数据一样正常.我认为可以用sp_executesql完成,但看起来它在我的情况下是不对的.
我正在尝试的是这样的:
declare @sql varchar(max)
set @sql = 'select x, y from z'
exec @sql --this is the point where im stuck.
Run Code Online (Sandbox Code Playgroud)
我知道这一定是一个非常基本的问题,但是在谷歌上找不到适合我问题的东西.
谢谢你的帮助!
更新 我通过使用sp_sqlexec解决了我的问题(不再支持,但工作就像我想要的那样).
declare @sql varchar(max)
set @sql = 'select x, y from z'
exec sp_sqlexec @sql
Run Code Online (Sandbox Code Playgroud)
正确的解决方案是sp_executesql!(请参阅sp_sqlexec与sp_executesql)对于我的问题,如果我"重建"我可以使用它的所有东西,那将是非常耗时的.
谢谢你的帮助!
您也可以使用sp_executesql
,但请注意它需要NVARCHAR(Unicode)
此外,如果要构建动态过滤器,则可以按以下方式传入参数
declare @SQL nvarchar(max)
set @SQL = N'select x, y from z where x = @someFilter'
exec sp_executesql @SQL, N'@someFilter bigint', @someFilter = 6034280
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9878 次 |
最近记录: |