在PostDeploy DACPAC脚本中使用SqlCmd变量



我的SqlCmd.exe中规定了一个变量:

/v:PipelineUser=$(user)

我想从DACPAC/Post-Deploy脚本中引用这个,但我不完全确定如何引用。脚本模板上的聊天内容是这样的:

/*
Post-Deployment Script Template                            
--------------------------------------------------------------------------------------
This file contains SQL statements that will be appended to the build script.        
Use SQLCMD syntax to include a file in the post-deployment script.            
Example:      :r .myfile.sql                                
Use SQLCMD syntax to reference a variable in the post-deployment script.        
Example:      :setvar TableName MyTable                            
SELECT * FROM [$(TableName)]                    
--------------------------------------------------------------------------------------
*/

但是,这看起来是物理地为变量赋值,而不是引用发布变量。

如何在部署后脚本中引用SqlCmd传递的PipelineUser变量?

找到了解决方案。我们需要引用DACPAC/SSDT项目属性中的变量。

然后,当部署脚本作为SqlCmd的一部分创建时,它只会在.中被替换

然后,我们可以使用$(variablename)在部署后脚本中引用我们想要的内容

这是一个实际的对象名称,而不仅仅是一个字符串。我们可以通过"引用"它来使它成为字符串。

示例用法:

DECLARE @userVARCHAR(100) = '$(user)';
ALTER AUTHORIZATION ON SCHEMA::[Staging] TO [$(user)];

相关内容

  • 没有找到相关文章

最新更新