gpt4 book ai didi

sql-server - 如何在 SQL Server 中有条件地创建存储过程?

转载 作者:行者123 更新时间:2023-12-02 01:02:39 28 4
gpt4 key购买 nike

作为我的集成策略的一部分,我运行了一些 SQL 脚本来更新数据库。所有这些脚本要做的第一件事就是检查它们是否需要运行,例如:

if @version <> @expects
begin
declare @error varchar(100);
set @error = 'Invalid version. Your version is ' + convert(varchar, @version) + '. This script expects version ' + convert(varchar, @expects) + '.';
raiserror(@error, 10, 1);
end
else
begin
...sql statements here...
end

效果很好!除非我需要添加存储过程。 “create proc”命令必须是一批sql命令中唯一的命令。在我的 IF 语句中放入“create proc”会导致此错误:

'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.

哎呀!如何将 CREATE PROC 命令放入我的脚本中,并让它仅在需要时执行?

最佳答案

这是我想到的:

将其包装在 EXEC() 中,如下所示:

if @version <> @expects
begin
...snip...
end
else
begin
exec('CREATE PROC MyProc AS SELECT ''Victory!''');
end

工作起来就像一个魅力!

关于sql-server - 如何在 SQL Server 中有条件地创建存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506/

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