作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SQL 脚本,每次客户端执行“数据库管理”功能时都必须运行该脚本。该脚本包括在客户端数据库上创建存储过程。其中一些客户端可能在运行脚本时已经具有存储过程,而另一些则可能没有。我需要将缺失的存储过程添加到客户端数据库中,但无论我如何尝试改变 T-SQL 语法,我都明白
CREATE/ALTER PROCEDURE' must be the first statement in a query batch
我读过在创作作品之前删除的内容,但我不喜欢这样做。
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO
CREATE PROCEDURE MyProc
...
如何添加对存储过程是否存在的检查,如果不存在则创建它,如果存在则更改它?
最佳答案
我意识到这已经被标记为已回答,但我们过去常常这样做:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND OBJECT_ID = OBJECT_ID('dbo.MyProc'))
exec('CREATE PROCEDURE [dbo].[MyProc] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER PROCEDURE [dbo].[MyProc]
AS
....
只是为了避免丢失程序。
关于sql - 如何在创建存储过程之前检查它是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072086/
我是一名优秀的程序员,十分优秀!