加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

是否可以在脚本中自动强制SQLCMD模式?

发布时间:2020-12-12 16:53:35 所属栏目:MsSql教程 来源:网络整理
导读:我们正在使用Visual Studio数据库专业版,它大量使用SQLCMD变量来区分各种环境之间的部署. 我知道有几个可用于设置上下文的指令(例如:连接服务器名称).脚本本身有没有办法强制执行SQLCMD模式?我们的部署过程的一部分是让DBA检查并执行脚本,这将是一个不错的
我们正在使用Visual Studio数据库专业版,它大量使用SQLCMD变量来区分各种环境之间的部署.

我知道有几个可用于设置上下文的指令(例如:连接服务器名称).脚本本身有没有办法强制执行SQLCMD模式?我们的部署过程的一部分是让DBA检查并执行脚本,这将是一个不错的安全网(所以我不必提醒他们将执行模式设置为SQLCMD).

解决方法

不是一个解决方案,但作为一个解决方案,您可以嵌入您的脚本在一些警告. This post启发我这段代码:
SET NOEXEC OFF; -- previous execution may have toggled it
:setvar IsSqlCmdEnabled "True"
GO
IF ('$(IsSqlCmdEnabled)' = '$' + '(IsSqlCmdEnabled)')
BEGIN
  PRINT('Use SqlCmd-mode!!');
  SET NOEXEC ON;
  -- RAISERROR ('This script must be run in SQLCMD mode.',20,1) WITH LOG
END
ELSE
BEGIN
  PRINT('Using SqlCmd-mode')
  -- insert the code you really want to execute:
  -- ...
END
SET NOEXEC OFF; -- do not disable next execution in this session

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读