gpt4 book ai didi

TSQL:如何在没有游标的情况下使用生成的 sql 命令字符串填充变量

转载 作者:行者123 更新时间:2023-12-04 22:53:55 26 4
gpt4 key购买 nike

我试图在存储过程中获取生成的 sql 的值。
执行这个

   DECLARE @sSQL varchar(5000), @retval int
DECLARE @tablename varchar(50)

SELECT @tablename = 'products'

SELECT @sSQL = 'SELECT @retval = MAX(ID)'
SELECT @sSQL = @sSQL + ' FROM ' + @tablename
EXEC (@sSQL)

SELECT @retval

我得到
   Must declare the variable '@retval'.

如何在不使用游标的情况下获取值(我试图避免)?

最佳答案

您将需要使用 sp_executesql:

DECLARE @retval int   
DECLARE @sSQL nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

DECLARE @tablename nvarchar(50)
SELECT @tablename = N'products'

SELECT @sSQL = N'SELECT @retvalOUT = MAX(ID) FROM ' + @tablename;
SET @ParmDefinition = N'@retvalOUT int OUTPUT';

EXEC sp_executesql @sSQL, @ParmDefinition, @retvalOUT=@retval OUTPUT;

SELECT @retval;

关于TSQL:如何在没有游标的情况下使用生成的 sql 命令字符串填充变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/233843/

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