gpt4 book ai didi

tsql - 如何从变量运行生成的 SQL?

转载 作者:行者123 更新时间:2023-12-03 07:57:36 24 4
gpt4 key购买 nike

我试过运行我的 SQL(在 T-SQL 中)(我刚刚生成了一个变量)但我无法让它运行。
我想做的是:
1.从程序运行大SQL
2、Big SQL生成select-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.

我知道这一定是一个非常基本的问题,但我在谷歌上找不到适合我的问题的东西。

谢谢你的帮助!

更新
我通过使用 sp_sqlexec 解决了我的问题(它不再受支持,但像我想要的那样工作)。
declare @sql varchar(max)

set @sql = 'select x, y from z'

exec sp_sqlexec @sql

正确的解决方法是sp_executesql! (见 sp_sqlexec vs. sp_executesql)
对于我的问题,如果我要“重建”我可以使用的所有东西,那将非常耗时。

谢谢你们的帮助!

最佳答案

您需要括号 exec (@sql)
SQL Server 将在 @sql 中查找名称的存储过程。没有这个变量并提示 Could not find stored procedure 'select x, y from z'.
如果您使用的是动态 SQL 参见 The Curse and Blessings of Dynamic SQL有关该主题的好文章。

关于tsql - 如何从变量运行生成的 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com