我正在尝试在单个脚本中删除并创建一个过程。我试过这个:
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'Foo')
DROP PROCEDURE Foo
GO
CREATE PROCEDURE dbo.Foo
-- procedure body here
但是我收到一个错误:
Incorrect syntax near 'GO'.
如果我删除 GO
,则会收到错误:
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch
更新
这些脚本由 Java 构建工具 (Maven) 执行
最佳答案
GO
实际上并不是 T-SQL 中的有效术语,它只是 Microsoft 管理工具用来分隔查询批处理的分隔符。
你用什么来运行脚本?如果您尝试在代码中执行此操作,那么您需要将其拆分为两个语句,也许使用正则表达式在 ^GO$
关于sql-server - 删除并创建 SQL Server 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6443221/