Немного справочной информации:
У меня есть хранимая процедура, назовем ее SP1. SP1 вызывает другую хранимую процедуру: SP2. SP2 вызывает другую хранимую процедуру: SP3.
Теперь первая хранимая процедура (SP1) возвращает набор результатов. Набор результатов - это параметры для SP2, это делается с помощью курсора.
Из-за этих вложенных операций вставки и выполнения мне приходится использовать динамическую строку SQL openrowset для выполнения хранимых процедур.
Это мой запрос:
DECLARE @P_Source varchar(255) = 'test'
DECLARE @P_Location varchar(255) = 'test'
DECLARE @sql varchar(max)
SET @sql = 'INSERT INTO #tmp
SELECT *
FROM OPENROWSET (
''SQLOLEDB'',
''Server=(local);TRUSTED_CONNECTION=YES;'',
''set fmtonly off
EXECUTE dbo.SP1
@P_Source = '''''+@P_Source+'''''''
,@P_Location = '''''+@P_Location+'''''''
)'
exec(@sql)
(Я, конечно, создал таблицу #tmp). У меня есть больше параметров, если быть точным (12), все varchar, но я оставил их, чтобы не запутать.
Я получаю следующую ошибку
Msg 102, Level 15, State 1, Line 12
Incorrect syntax near ','.
правильно ли я использую команду openrowset с соответствующими параметрами процедуры?