gpt4 book ai didi

SQL Server 字符串执行带有输出参数的过程

转载 作者:行者123 更新时间:2023-12-04 00:10:17 25 4
gpt4 key购买 nike

如何使用 Character String Exec 的输出参数?考虑以下使用“标准”语法的查询:

DECLARE @testString nvarchar(50);
EXEC testProcedure @param1 = @testString OUTPUT
SELECT 'result ' = @testString
go

如何用字符串 exec 重新创建完全相同的结果,两者都不是

EXEC ( 'testProcedure @param1 = @testString OUTPUT' )

也不

EXEC ( 'testProcedure @param1 = ' + @testString + ' OUTPUT' )

似乎有效:结果是 NULLMust declare the scalar variable "@testString" 错误。

最佳答案

您需要将值作为参数传递。动态 SQL 在新上下文中执行,这就是变量在那里不可见的原因。

你应该使用 sp_executesql :

DECLARE @testString nvarchar(50);

EXEC dbo.sp_executesql N'EXEC testProcedure @testString OUTPUT',
N'@testString nvarchar(50) OUTPUT',
@testString OUTPUT;

SELECT 'result ' = @testString;

LiveDemo

关于SQL Server 字符串执行带有输出参数的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968082/

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