• 怎樣在不同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'存儲過程已存在'
    /*
    存儲過程已存在
    
    */


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

  • 相关阅读:
    CF611C New Year and Domino
    CF706C Hard problem (状态机dp)
    CF467C George and Job (dp)
    Vue的响应式系统
    如何更好的使用js?
    关于JS变量和作用域详解
    运算符的应用及流程控制if,switch语句
    js闭包
    js的基础
    js的使用及语法
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463067.html
Copyright © 2020-2023  润新知