加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

存储过程 – 在SQL Server 2000中删除存储过程的语法是什么?

发布时间:2020-12-12 06:57:19 所属栏目:MsSql教程 来源:网络整理
导读:简单的问题,正如标题所示: 首先检查SP是否存在SQL Server 2000中存储过程(SP)的语法是什么? 请提供完整的代码。 解决方法 微软推荐使用object_id()函数,就像这样: IF EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[YourProcedure
简单的问题,正如标题所示:

首先检查SP是否存在SQL Server 2000中存储过程(SP)的语法是什么?

请提供完整的代码。

解决方法

微软推荐使用object_id()函数,就像这样:
IF EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[YourProcedure]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[YourProcedure]
GO


object_id()有助于解决所有者冲突。如果你这样做
SELECT name FROM sysobjects WHERE name =’my_procedure’
您可能会看到许多不同的程序,具有相同的名称 – 所有的不同的所有者。

但是,如果存在多个过程,SELECT * FROM sysobjects WHERE id = object_id(N'[my_procedure]’)将只显示当前所有者/用户的一个。

仍然,始终指定对象所有者(默认为dbo)。这不仅避免了讨厌的副作用,还有一点快。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读