У меня есть скрипт sql, который настроен на roll to production. Я объединил различные проекты в отдельные транзакции. В каждой транзакции мы создали хранимые процедуры. Я получаю сообщения об ошибкахTSQL - создать хранимую процедуру внутри оператора транзакции
Msg 156, Level 15, State 1, Line 4 Неверный синтаксис рядом с ключевым словом «procedure».
Я создал этот пример сценарий для иллюстрации
Begin Try
Begin Transaction
-- do a bunch of add/alter tables here
-- do a bunch of data manipulation/population here
-- create a stored proc
create procedure dbo.test
as
begin
select * from some_table
end
Commit
End Try
Begin Catch
Rollback
Declare @Msg nvarchar(max)
Select @Msg=Error_Message();
RaisError('Error Occured: %s', 20, 101,@Msg) With Log;
End Catch
ошибка, кажется, подразумевает, что я не могу создавать хранимые проки внутри транзакции, но я не нахожу никаких документов, которые говорят иначе (возможно, Google ISN Сегодня не бывает.
это для сервера sql? –
Да, извините, я должен был упомянуть об этом. sql 2008. –
Я решил вытащить процесс создания из транзакции и попробовать/уловить в свой раздел. Я положил оператор «if exists then drop» и добавил «статусы (если есть), чтобы напечатать сообщение» вокруг сохраненного создания proc. Спасибо за все отзывы, я кое-что узнал от него. –