【发布时间】:2021-01-31 06:38:18
【问题描述】:
我在 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 (.
你能帮忙吗?如何在数据库上设置权限以取决于我引入的新变量?
谢谢!
【问题讨论】:
-
你现在解决了吗?
标签: sql azure-sql-database dacpac sqlpackage