有什么方法可以查询结果中生成的代码?

时间:2019-07-11 15:46:31

标签: sql-server tsql dynamic-sql

我已经生成了代码块并将其连接成一个字符串,并存储在临时表中。有什么方法可以运行此代码字符串,而无需将结果复制粘贴到查询中?

我尝试使用set和exec来读取代码,但是它仅返回存储的字符串值,而不运行实际的代码。

在临时表## steg4中,我存储了要运行的代码字符串。我尝试过:

declare     @cmd    varchar(max)
begin 
    set @cmd = 'select string from ##steg4'
    exec (@cmd)
end 

但是,它不将其作为代码读取,而仅作为结果文本字符串读取。有什么方法可以使它读取存储在## steg4中的代码字符串,并根据该代码输出新的结果?

我希望有一种无需手动操作即可读取代码的方法(将粘贴的生成代码复制粘贴到## steg4中)。

2 个答案:

答案 0 :(得分:0)

类似这样的东西:

declare @cmd varchar(max);

selecct @cmd = string
from ##steg4;

exec sp_executesql @cmd;

答案 1 :(得分:0)

感谢您的反馈。我仍然无法通过您的建议使它正常工作,而是调整了使用的初始代码并获得了想要的答案:

declare @cmd varchar(max)
begin 
    set @cmd = (select string from ##steg4)
    exec (@cmd)
end 

显然,选择语句中没有括号。

诚挚的问候, 亚历山大