如何检查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]