简单的问题,如标题所示:在SQL Server 2000中删除存储过程的语法是什么?
通过首先检查SP是否存在,在SQL Server 2000中删除存储过程(SP)的语法是什么?
请提供完整的代码。
简单的问题,如标题所示:在SQL Server 2000中删除存储过程的语法是什么?
通过首先检查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
)。这不仅可以避免令人讨厌的副作用,而且还可以快一点。
像这样:
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'my_procedure' AND type = 'P')
DROP PROCEDURE my_procedure GO
希望帮助!
而不去系统表稍微简单的方法:
IF OBJECT_ID('my_procedure') IS NOT NULL DROP PROCEDURE my_procedure
GO
在SQL SERVER 2008
,如果你想删除一个存储过程只写下面的命令....
DROP PROC Procedure_name
DROP PROC dbo.spInsertUser
希望它帮助..
我正在使用MS SQL 2012,此语法对我有用 DROP PROCEDURE [dbo]。[YourProcedure] – 2017-12-30 11:21:46