我有一个存储过程,我以这种方式进行了简化:
DECLARE @variable1 INT
DECLARE @SQL VARCHAR(MAX)
SET @SQL = '
DECLARE @variable2 INT
SET @variable2 = 1
SET '+CAST(@variable1 AS VARCHAR)+' = @variable2
SELECT @variable1 as V1, @variable2 as V2
'
EXEC(@SQL)
Run Code Online (Sandbox Code Playgroud)
但是这个脚本没有给我任何东西!我很确定这与范围有关。问题是我需要在动态查询之外声明变量。
感谢帮助 !
编辑 :
WHILE LOOP UNTIL SELECT COUNT xxx = 0
BEGIN
DECLARE @variable1 INT
DECLARE @SQL VARCHAR(MAX)
SET @SQL = '
EXEC STORE PROC WITH PARAMETER @Param1 = @variable1 (first loop @Param1 is null)
STORE PROC RETURN A VALUE
SET @variable1 with return value …
Run Code Online (Sandbox Code Playgroud)