2015-08-08 53 views
0

我試圖批量編譯SSMS中的所有存儲過程。但只有第一個存儲過程被編譯,然後爲其他程序顯示「已經有一個對象... ...」「我把所有的程序保存在一個編輯器中,然後嘗試編譯[F5]程序,但得到錯誤。請建議如何批量編譯所有程序。批量編譯所有存儲過程

下面是示例什麼,我試圖做的:

USE [TESTDB]  
IF OBJECTPROPERTY(object_id('[dbo].[p_get_Codes]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_Codes] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_Codes] Script Date: 8/8/2015 8:56:32 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_Codes] 
    as 

    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 


    IF OBJECTPROPERTY(object_id('[dbo].[p_get_retailers]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_retailers] 

    GO 
    /****** Object: StoredProcedure [dbo].[p_get_retailers] Script Date: 8/8/2015 8:58:43 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_retailers] 
    as 

    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 


    IF OBJECTPROPERTY(object_id('[dbo].[p_get_Buyers]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_Buyers] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_Buyers] Script Date: 8/8/2015 10:17:53 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_Buyers] 
    as 
    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 


    IF OBJECTPROPERTY(object_id('[dbo].[p_get_seller_groups]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_seller_groups] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_seller_groups] Script Date: 8/8/2015 10:23:39 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_seller_groups] 

    as 
    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 

謝謝!

+0

你試圖解析?或試圖創建/改變它們? – DarkKnight

+0

試圖創建過程。如果存在則刪除並批量創建過程。 – user4221591

+0

已添加答案,請檢查 – DarkKnight

回答

1

添加go之前每個IF聲明,檢查存儲過程是否存在等

你的腳本應該是這樣的

USE [TESTDB]  
IF OBJECTPROPERTY(object_id('[dbo].[p_get_Codes]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_Codes] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_Codes] Script Date: 8/8/2015 8:56:32 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_Codes] 
    as 

    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 

GO 
    IF OBJECTPROPERTY(object_id('[dbo].[p_get_retailers]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_retailers] 

    GO 
    /****** Object: StoredProcedure [dbo].[p_get_retailers] Script Date: 8/8/2015 8:58:43 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_retailers] 
    as 

    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 

GO 
    IF OBJECTPROPERTY(object_id('[dbo].[p_get_Buyers]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_Buyers] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_Buyers] Script Date: 8/8/2015 10:17:53 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_Buyers] 
    as 
    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 

GO 
    IF OBJECTPROPERTY(object_id('[dbo].[p_get_seller_groups]'), N'IsProcedure') = 1 
    DROP PROCEDURE [dbo].[p_get_seller_groups] 
    GO 
    /****** Object: StoredProcedure [dbo].[p_get_seller_groups] Script Date: 8/8/2015 10:23:39 AM ******/ 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    create proc [dbo].[p_get_seller_groups] 

    as 
    begin 
    SET NOCOUNT ON; 
     begin 
      --- my stored procedure 
     end 
    SET NOCOUNT OFF; 
    end; 
+0

感謝您的回覆! – user4221591

+0

歡迎您! – DarkKnight