if exists(select 1 from sysobjects where id=object_id('所有者.存储过程名') and xtype='P')
print '存在'
else
print '不存在'

解决方案 »

  1.   


    if exists(select 1 from sysobjects where id=object_id('所有者.存储过程名') and xtype='P')
    begin
         exec('drop procedure 所有者.存储过程名')
    end
      

  2.   


    --******************************************************************************************************************************
    if exists(select 1 from sysobjects where id=object_id('saiken.KJ_Tokuisaki_Koujibetu_DL_Proc') and xtype='P')
    begin
         exec('drop procedure saiken.KJ_Tokuisaki_Koujibetu_DL_Proc')
    end
    --*******************************************************************************************************************************
    CREATE Procedure KJ_Tokuisaki_Koujibetu_DL_Proc
     (
       @Condition nvarchar(1000)
     )
    ASDECLARE @ExecStr varchar(4000)Select @ExecStr="  SELECT B1.*"
    Select @ExecStr=@ExecStr+ ",convert(float,isnull(B1.B1_KAISHU_GIMUDAKA,0))+convert(float,isnull(B1.B1_JIGETUIKOU_KAISHU_YOTEI,0)) AS B1_KONKAI_SEIKYU"
    Select @ExecStr=@ExecStr+ " FROM saiken.B1_KAISHU_TOKUISAKI AS B1"
    Select @ExecStr=@ExecStr+ " WHERE "
    Select @ExecStr=@ExecStr+ " B1.B1_DATA_KAKUTEI_KBN = '1' "
    Select @ExecStr=@ExecStr+ " AND B1.B1_SEIKYU_YYYYMM IN (SELECT M7_YYYYMM FROM saiken.M7_HANYO2 WHERE "
    Select @ExecStr=@ExecStr+ " M7_CODE = '02' OR M7_CODE = '03')"
    Select @ExecStr=@ExecStr+ @Condition 
    Select @ExecStr=@ExecStr+" ORDER BY B1.B1_SEIKYU_YYYYMM, B1.B1_NAYOSESAKI, B1.B1_TOKUISAKI "EXECUTE(@ExecStr)
    如上的存储过程,先判断它是否存在,然后再建存储过程。在sql 7.0 下执行,提示'CREATE PROCEDURE' must be the first statement in a query batch.'
    如何更改,谢谢!
      

  3.   

    if exists(select 1 from sysobjects where id=object_id('saiken.KJ_Tokuisaki_Koujibetu_DL_Proc') and xtype='P')
    begin
         exec('drop procedure saiken.KJ_Tokuisaki_Koujibetu_DL_Proc')
    endgo    --加GOCREATE Procedure KJ_Tokuisaki_Koujibetu_DL_Proc
     (
       @Condition nvarchar(1000)
     )
    ASDECLARE @ExecStr varchar(4000)Select @ExecStr="  SELECT B1.*"
    Select @ExecStr=@ExecStr+ ",convert(float,isnull(B1.B1_KAISHU_GIMUDAKA,0))+convert(float,isnull(B1.B1_JIGETUIKOU_KAISHU_YOTEI,0)) AS B1_KONKAI_SEIKYU"
    Select @ExecStr=@ExecStr+ " FROM saiken.B1_KAISHU_TOKUISAKI AS B1"
    Select @ExecStr=@ExecStr+ " WHERE "
    Select @ExecStr=@ExecStr+ " B1.B1_DATA_KAKUTEI_KBN = '1' "
    Select @ExecStr=@ExecStr+ " AND B1.B1_SEIKYU_YYYYMM IN (SELECT M7_YYYYMM FROM saiken.M7_HANYO2 WHERE "
    Select @ExecStr=@ExecStr+ " M7_CODE = '02' OR M7_CODE = '03')"
    Select @ExecStr=@ExecStr+ @Condition 
    Select @ExecStr=@ExecStr+" ORDER BY B1.B1_SEIKYU_YYYYMM, B1.B1_NAYOSESAKI, B1.B1_TOKUISAKI "EXECUTE(@ExecStr)
      

  4.   

    if exists(select 1 from sysobjects where id=object_id('saiken.KJ_Tokuisaki_Koujibetu_DL_Proc') and xtype='P')
    begin
         exec('drop procedure saiken.KJ_Tokuisaki_Koujibetu_DL_Proc')
    end
    go
    ---此处加 go
    --*******************************************************************************************************************************
    CREATE Procedure KJ_Tokuisaki_Koujibetu_DL_Proc
     (
       @Condition nvarchar(1000)
     )
    ASDECLARE @ExecStr varchar(4000)Select @ExecStr="  SELECT B1.*"
    Select @ExecStr=@ExecStr+ ",convert(float,isnull(B1.B1_KAISHU_GIMUDAKA,0))+convert(float,isnull(B1.B1_JIGETUIKOU_KAISHU_YOTEI,0)) AS B1_KONKAI_SEIKYU"
    Select @ExecStr=@ExecStr+ " FROM saiken.B1_KAISHU_TOKUISAKI AS B1"
    Select @ExecStr=@ExecStr+ " WHERE "
    Select @ExecStr=@ExecStr+ " B1.B1_DATA_KAKUTEI_KBN = '1' "
    Select @ExecStr=@ExecStr+ " AND B1.B1_SEIKYU_YYYYMM IN (SELECT M7_YYYYMM FROM saiken.M7_HANYO2 WHERE "
    Select @ExecStr=@ExecStr+ " M7_CODE = '02' OR M7_CODE = '03')"
    Select @ExecStr=@ExecStr+ @Condition 
    Select @ExecStr=@ExecStr+" ORDER BY B1.B1_SEIKYU_YYYYMM, B1.B1_NAYOSESAKI, B1.B1_TOKUISAKI "EXECUTE(@ExecStr)
      

  5.   

    “drop procedure [saiken].[KJ_Tokuisaki_Koujibetu_DL_Proc]“ 执行错误,提示 it does not exist in the system catalog。
      

  6.   

    你的所有者名[saiken]应该为dbo?