У меня есть два оператора TSQL EXEC
EXECUTE (N'MyDynamicallyGeneratedStoredProcedure') -- return 0 on success
SELECT @errCode = @@ERROR ;
IF (@errCode = 0)
BEGIN
EXEC 'A Sql Statement using ##temptable created from first', @returnValue
END
Как мне сделать два EXEC синхронными? ; Прямо сейчас второй EXEC не ждет завершения первого EXECUTE. Я попытался выдать задержку WaitFor, она ждет, но вторая инструкция EXEC никогда не возвращается назад.
Спасибо.
Обновление, здесь больше информации:
- Первое выполнение создает глобальную временную таблицу и заполняет ее из сложного запроса SELECT.
- Второй EXEC - это хранимая процедура CLR, которая генерирует динамический SP на основе переменных из недавно созданной и заполненной таблицы Global Temp.
Теперь второй EXEC жалуется, что таблица Global Temp не найдена.
Обновление 2, обнаружена проблема (и это я !!)
GBN (и другие) были в упор на ответ. EXEC синхронно. Эта проблема? Мое понимание самой проблемы .. Я упомянул
- EXECUTE (N'MyDynamicallyGeneratedStoredProcedure ') - возвращает 0 в случае успеха
Это должно было быть:
1 (a) EXECUTE (N'CreateMyDynamicStoredProcedure ') - возвращает 0 в случае успеха
1 (b) EXECUTE (N'MyDynamicStoredProcedure ') - вернуть 0 в случае успеха
Я пропустил, что 1 (b) был фактически выполнен где-то еще и после шага (2).
(я должен пойти и получить жизнь !!)