在DACPAC部署中使用SQL变量来区分权限

我在Azure上有一个SQL数据库,并使用.dacpac文件使用SqlPackage.exe部署任何模式更改。我希望对此进行修改,以便根据我要部署到的环境,使用sql变量来控制模式中的某些更改。因此,在.sqlproj文件中,我添加了以下内容:

  <ItemGroup>
    <SqlCmdVariable Include="DEPLOYMENTTYPE">
      <DefaultValue>
      </DefaultValue>
      <Value>$(SqlCmdVar__1)</Value>
    </SqlCmdVariable>
  </ItemGroup>

然后,在用于设置安全性的.sql文件中,我添加了如下条件:

CREATE ROLE [db_newprodrole]
    AUTHORIZATION [dbo];

GO
IF ($(DEPLOYMENTTYPE) = 'production')
    ALTER ROLE [db_newprodrole] ADD MEMBER [newestprodmember];

然而,我在这个IF条件中得到了一个语法错误:

SQL46010: Incorrect syntax near (.

你能帮帮忙吗?如何将数据库上的权限设置为我引入的新变量的条件?

谢谢!

转载请注明出处:http://www.xiangbinbaiyi.com/article/20230527/1287179.html