iSeries SQL过程-检查是否已经存在

时间:2020-03-06 14:58:14  来源:igfitidea点击:

我有一个脚本,如果要尝试创建的任何程序已经存在,该脚本就会掉下来。如何检查/删除是否已创建此过程?

解决方案

我猜大概是:

IF EXISTS
(
    SELECT *
    FROM SYSPROCS
    WHERE SPECIFIC_SCHEMA = ???
      AND SPECIFIC_NAME = ???
      AND ROUTINE_SCHEMA = ???
      AND ROUTINE_NAME = ???
)
    DROP PROCEDURE ???

我不知道我们是否真正需要SPECIFIC_ *信息,也不知道如何处理具有两个名称相同但调用签名不同的过程的情况,但是希望这能使我们走上正确的道路。

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

我认为这对我们有帮助