gpt4 book ai didi

tsql - 如何从 TSQL SPROC 中的 EXEC() 获取行计数?

转载 作者:行者123 更新时间:2023-12-03 01:37:40 24 4
gpt4 key购买 nike

我有一个 TSQL 存储过程,它构建一个查询并按如下方式执行它:

EXEC (@sqlTop + @sqlBody + @sqlBottom)

@sqlTop 包含类似 SELECT TOP(x) col1, col2, col3...

TOP(x) 会限制返回的行数,因此稍后我想知道表中与查询匹配的实际行数。

然后我将 @sqlTop 替换为以下内容:

EXEC ('SELECT @ActualNumberOfResults = COUNT(*) ' + @sqlBody)

我可以理解为什么这不起作用,以及为什么会发生未声明值的错误,但我认为它充分描述了我想要完成的任务。

有什么想法吗?

最佳答案

使用sp_executesql输出参数

示例

DECLARE @sqlBody VARCHAR(500),@TableCount INT, @SQL NVARCHAR(1000)

SELECT @sqlBody = 'from sysobjects'
SELECT @SQL = N'SELECT @TableCount = COUNT(*) ' + @sqlBody

EXEC sp_executesql @SQL, N'@TableCount INT OUTPUT', @TableCount OUTPUT

SELECT @TableCount
GO

关于tsql - 如何从 TSQL SPROC 中的 EXEC() 获取行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193126/

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