zoukankan      html  css  js  c++  java
  • 怎樣在不同DB環境生成其它DB的存儲過程

    --如在Tempdb環境生成 Test的存儲過程,由於字符串不支持"go"
    
    declare @sql nvarchar(max)
    set @sql=
    'USE tempdb
    go
    CREATE PROCEDURE P_Test
    AS
    SELECT 1'
    exec(@sql)
    
    /*
    訊息 102,層級 15,狀態 1,行 2
    接近 'go' 之處的語法不正確。
    訊息 111,層級 15,狀態 1,行 5
    'CREATE/ALTER PROCEDURE' 必須是查詢批次的第一個陳述式。
    
    */
    
    --解決方法:
    
    --1、首先在Test創建一個執行腳本的存儲過程
    
    USE Test
    GO
    IF OBJECT_ID('Cmd_Script','P') IS NOT NULL
    	DROP PROCEDURE Cmd_Script
    GO
    CREATE PROCEDURE Cmd_Script(
    @Sql NVARCHAR(max)
    )
    AS
    EXEC(@Sql)
    GO
    
    --2、測試生成Test庫的存儲過程
    
    
    USE tempdb
    GO
    declare @sql nvarchar(max)
    set @sql=
    'CREATE PROCEDURE P_Test
    AS
    SELECT 1'
    EXEC Test.dbo.Cmd_Script @sql
    
    GO
    
    
    IF  OBJECT_ID('Test.dbo.P_Test') IS NOT NULL
    	PRINT  N'存儲過程已存在'
    /*
    存儲過程已存在
    
    */


    看到有網友問這類問題,這里寫個實現方法

  • 相关阅读:
    agc027D
    agc027E
    agc036D
    牛客挑战赛43 D-数组操作
    CF587F. Duff is Mad
    CF578F. Mirror Box
    CF708D. Incorrect Flow
    agc022D
    2020.12.16 模拟赛x+1
    Mybatis Plus——[Could not set property 'id' of '***' with value]解决方案
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463067.html
Copyright © 2011-2022 走看看