【发布时间】:2020-07-13 22:48:23
【问题描述】:
关于这个存储过程:
CREATE PROCEDURE Test
(@outparam int OUTPUT)
AS
BEGIN
DECLARE @SQL VARCHAR(1000)
SET @SQL = '
DECLARE @outparam int
IF (1=0)
PRINT ''do something here. I use dynamic stuff in IF and in here ''
ELSE IF (1=0)
PRINT ''do something here. I use dynamic stuff in IF and in here ''
ELSE if (1=1)
BEGIN
SET @outparam = 5
END
'
EXEC (@SQL)
END
我需要在动态查询中分配@outparam,因为所有逻辑都在其中。
它不起作用。我明白为什么,但我不知道如何解决它
DECLARE @out int
EXEC Test @outparam = @out OUTPUT
SELECT @out
【问题讨论】:
-
你需要使用sp_executesql - 那里有例子。
标签: sql-server tsql sql-server-2012