gpt4 book ai didi

sql-server - TSQL - 在事务语句中创建存储过程

转载 作者:行者123 更新时间:2023-12-02 11:48:58 26 4
gpt4 key购买 nike

我有一个已设置为滚动到生产环境的 SQL 脚本。我已将各个项目包装成单独的事务。在每个事务中我们都创建了存储过程。我收到错误消息

消息 156,级别 15,状态 1,第 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

该错误似乎暗示我无法在事务内创建存储过程,但我没有找到任何其他说明的文档(也许谷歌今天并不友好)。

最佳答案

尝试在 EXEC('...') 中执行创建过程,如下所示:

Begin Try
Begin Transaction
-- do a bunch of add/alter tables here
-- do a bunch of data manipulation/population here

-- create a stored proc
EXEC ('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

GO

关于sql-server - TSQL - 在事务语句中创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com