我正在使用sqlpackage.exe部署dacpac,需要为dacpac中的postdeployment脚本传递SqlCMD变量。我找到了相关问题here和here。
但是我收到以下错误: 缺少以下SqlCmd变量的值:BuildVersion描述。 说明= $说明:术语'说明= $说明'不是 被识别为cmdlet,函数,脚本文件或可操作的名称 程序。检查名称的拼写,或者如果包含路径,请验证 路径是正确的,然后再试一次。
请帮帮我。
答案 0 :(得分:3)
将SQLCMD变量传递给SQLPackage的正确开关是这样的 / V:描述= $描述
Powershell引用有点棘手。 以下是您的一个例子:
https://gist.github.com/davoscollective/adf9b890984e51d8dee2
& "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe" ` #Note this is SQL Server 2012 specific directory, alter as needed
/Action:Publish `
/SourceFile:$sourceFile `
/TargetServerName:$targetServerName `
/TargetDatabaseName:$targetDBname `
/V:SQLCMDVariable1=$SQLCMDVariable1 ` #If your project includes other database references, or pre/post deployment scripts uses SQLCMD variables
/v:SQLCMDVariable2=$SQLCMDVariable2 `
答案 1 :(得分:1)
您似乎正在使用Powershell根据cmdlet错误调用SqlPackage。如果是这种情况,请确保使用反撇号(即
)转义美元符号即Description = ` $ Description
你能发布你传递的完整命令吗?