将动态 SQL 查询结果存储在 SQL Server 变量中
在 SQL Server 中使用动态 SQL 通常需要将查询结果捕获到变量中以进行后续处理。当动态查询返回单个值时,这特别有用。
考虑一个场景,其中动态 SQL 查询对特定城市的客户进行计数。 挑战在于有效地检索此计数并将其分配给存储过程中的变量。
sp_executesql
系统存储过程与输出参数一起使用,提供了一个解决方案。这允许将动态 SQL 查询的结果直接分配给变量。
这是一个改进的代码示例,演示如何将计数存储在 @count
变量中:
<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000); DECLARE @count INT; DECLARE @city VARCHAR(75); SET @city = 'New York'; SET @sqlCommand = N'SELECT @cnt = COUNT(*) FROM customers WHERE City = @city'; EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75), @cnt int OUTPUT', @city = @city, @cnt = @count OUTPUT; SELECT @count;</code>
此修改后的代码将动态 SQL 中的 @cnt
变量设置为 COUNT(*)
结果。 sp_executesql
使用输出参数 @city
和 @cnt
执行查询。然后结果被整齐地存储在 @count
变量中。
以上是如何将动态 SQL 结果返回到 SQL Server 中的变量?的详细内容。更多信息请关注PHP中文网其他相关文章!