sql-server - 删除并创建 SQL Server 过程

标签 sql-server stored-procedures

我正在尝试在单个脚本中删除并创建一个过程。我试过这个:

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/

相关文章:

SQL Server 2008 复杂查询和表连接

mysql - 如何获取前20条SQL中某列的百分比?

c# - Mysqlcommand.ExecuteReaderAsync 处理可以返回一个或多个结果集的存储过程

sql - 生成优惠券代码时感到困惑

php - 如何从 MySQL 存储过程中获取错误详细信息

javascript - 使用 Filestream 为来自 SQL Server'08 的文件创建链接

sql-server - 通过 WAN 打开大文件的好方法是什么?

SQL Server 审核注销会产生大量读取

c# - MySql 参数化存储过程在 C# 中不起作用

sql - 查看存储过程的结果