有没有办法立即停止在SQL Server中执行SQL脚本,如"break"或"exit"命令?
我有一个脚本在开始插入之前执行一些验证和查找,我希望它在任何验证或查找失败时停止.
SQLCMD命令是否:r
支持非常量文字路径?
例如:
setvar $(path1) '.\script.sql'
:r $(path1) -- SQL01260: A fatal parser error occurred: .
:r '$(path1)' -- SQL01260: A fatal parser error occurred: .
:r "$(path1)" -- SQL01260: A fatal parser error occurred: .
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据配置(调试/发布等)设置SQLCmd变量,但配置下拉列表显示为灰色(参见下图).对于Dev环境,我希望SQLCmd变量为Stage,对于Release环境,Prod.
如果不进入属性,我无法想出一个简单的方法.我们有9个项目,每个项目约6个变量.每次我们进行模式比较时,我们都必须手动更改变量,这非常繁琐.
我们的发布脚本适用于不同的环境,它只是设置模式比较,这使得它非常耗时.
在我们的 SSDT 项目中,我们有一个巨大的脚本,其中包含许多用于从旧系统导入数据的 INSERT 语句。使用 sqlcmd 变量,我希望能够有条件地将文件包含到部署后脚本中。
我们目前使用的:r
语法包括内联脚本:
IF '$(ImportData)' = 'true'
BEGIN
:r .\Import\OldSystem.sql
END
Run Code Online (Sandbox Code Playgroud)
这是一个问题,因为 无论是真还是假,脚本都被内联包含$(ImportData)
,而且文件太大,导致构建速度减慢了大约 15 分钟。
是否有另一种方法有条件地包含此脚本文件,以免减慢构建速度?