У меня есть SP, который я создал для проверки на валидацию и возврата параметра OUTPUT 0 (нет ошибок) или 1 (ошибка). Однако мне нужно запустить этот SP в Dynamic SQL, так как он будет проходить через цикл различных данных.
Могу ли я извлечь выход из SP через EXEC sp_executesql @SQL?
Не могу опубликовать фактический код, но могу привести пример ..
DECLARE
@SQL nVARCHAR(4000),
@SPName VARCHAR(200),
@Parm1 VARCHAR(100),
@Parm2 VARCHAR(100),
@Parm3 VARCHAR(100),
@ParmDefinition nVARCHAR(400),
@Error nVARCHAR(1)
SELECT
@SPName = 'spExample1',
@Parm1 = '000000',
@Parm2 = '111111',
@Parm3 = '@Err=@Error OUTPUT',
SET @SQL = 'EXEC ' + @SPName + ' ' + @Parm1 + ',' + @Parm2 + ',' + @Parm3 + '
SET @ParmDefinition = N'@Err2 nVARCHAR(1) OUTPUT'
EXEC sp_executesql @SQL, @ParmDefinition, @Err2=@Error OUTPUT
Переменная @SQL в конечном итоге будет:
EXEC spExample1 000000, 111111, @Err=@Error OUTPUT
^^, который прекрасно работает сам по себе.
В основном я пытаюсь получить выход через вышеуказанный код, но когда он проходит через динамически.
Возможно ли это или есть другой способ сделать это?
То, как в итоге разыгрываются вещи:
EXEC sp_executesql EXEC spExample1 000000, 111111, @Err=@Error OUTPUT, @Err2 nVARCHAR(1) OUTPUT, @Err2=@Error OUTPUT
Посмотрев на это, выглядишь смешно, но любая помощь определенно будет оценена.