如何检查SQL Azure中是否存在存储过程?

问题描述:

我通常使用SQL Server下面的代码:如何检查SQL Azure中是否存在存储过程?

IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].[proc_MyProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) 
DROP PROCEDURE [dbo].[proc_MyProc] 
GO 

如何在SQL Azure中做到这一点?我收到一条错误消息:“无效的对象名'sysobjects'。”

补充:

错误,其实是在检查如果存储过程中存在和发现的代码来做到这一点:

IF EXISTS (SELECT Routine_Name from information_schema.Routines WHERE Routine_Name = 'proc_MyProc') 
DROP PROCEDURE [proc_MyProc] 
GO 

我已经更新的问题,并提供了答案。

这也适用于SQL Azure的

if object_id('[dbo].[proc_MyProc]') is not null 
    DROP PROCEDURE [proc_MyProc]