繁体   English   中英

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

[英]Is it possible to automatically force SQLCMD mode in script?

我们正在使用Visual Studio Database Professional,它在部署时大量使用SQLCMD变量来区分环境。

我知道有几个指令可用于设置上下文(例如:connect for server name)。 脚本本身是否有办法强制执行SQLCMD模式? 我们部署过程的一部分是让DBA检查并执行脚本,这将是一个很好的安全网(所以我不必提醒他们将执行模式设置为SQLCMD)。

不是解决方案,但作为一种解决方法,您可以在一些警告中嵌入脚本。 这篇文章启发了我这个代码:

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

这似乎不可能。 我甚至检查了SSMS项目模式。

但是,如果在BIDS中创建数据库项目,则预部署和后部署脚本默认以SQLCMD模式运行。

我知道这不是你想要的答案,但它是我能给你的最好的,而不是根据脚本文件中的某些文本创建一个自定义的SSMS插件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM