在 SQL Server 2000 中删除存储过程的语法是什么?
简单的问题,如标题所示:
在 SQL Server 2000 中通过首先检查 SP 是否存在来删除存储过程 (SP) 的语法是什么?
请提供完整代码。
Simple question, as the title suggests:
What is the syntax to drop a Stored Procedure (SP) in SQL Server 2000, by first checking that the SP exists?
Please provide the full code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Microsoft 建议使用
object_id()
函数,如下所示:.
object_id()
有助于解决所有者冲突。如果你这样做从 sysobjects 中选择名称,其中 name = 'my_procedure'
,您可能会看到许多具有相同名称的不同过程 - 全部针对不同的所有者。
但是,如果存在多个同名过程,
SELECT * FROM sysobjects WHERE id = object_id(N'[my_procedure]')
只会显示当前所有者/用户的过程。不过,请始终指定对象所有者(默认为 dbo)。这不仅可以避免令人讨厌的副作用,而且速度也更快一些。
Microsoft recommended using the
object_id()
function, like so:.
object_id()
helps resolve owner conflicts. If you doSELECT name FROM sysobjects WHERE name = 'my_procedure'
, you may see many different procedures with the same name -- all for different owners.
But,
SELECT * FROM sysobjects WHERE id = object_id(N'[my_procedure]')
will only show you the one for the current owner/user, if more than one procedure by that name exists.Still, always specify the object owner (default is
dbo
). Not only does this avoid nasty side-effects, it's a little faster too.不适用于 SQL Server 2000,但从 SQL Server 2016 开始,您可以使用 IF EXISTS 语法:
Not for SQL Server 2000, but starting with SQL Server 2016, you can use the IF EXISTS syntax:
一种稍微简单的方法,无需进入系统表:
A slightly simpler method without going to system tables:
像这样:
希望有帮助!
Like this:
Hope that helps!
如果要删除多个过程,可以执行以下操作。
注意:此语法适用于 SQL Server 2016 及更高版本
You can do the following if you want to remove multiple Procedures.
NB: This syntax works on SQL Server 2016 and later
在
SQL SERVER 2008
中,如果您想删除存储过程,只需编写以下命令......希望它有帮助......
In
SQL SERVER 2008
, if you want to drop a stored procedure just write the below command....Hope it helps..