我希望能够为不同的环境设置不同的保留期,而无需为每个环境设置单独的脚本。我目前在 Visual Studio 中使用 SQL Server 数据库项目并创建一个部署后脚本来处理这个问题。
我已经设置了一个 Sql cmd 变量,该变量基于我正在使用的发布配置文件传递给一个名为 RetentionPolicyMonths 的变量:
<ItemGroup>
<SqlCmdVariable Include="RetentionPolicyMonths">
<Value>36</Value>
</SqlCmdVariable>
</ItemGroup>
然后我想在我的部署后脚本中使用它来设置每个表的保留策略:
DECLARE @RetentionPolicyMonths int = CAST('$(RetentionPolicyMonths)' AS int)
ALTER TABLE [benefits].[Address] SET (SYSTEM_VERSIONING = ON (History_Retention_Period = @RetentionPolicyMonths MONTHS));
我的问题是,它目前不允许我像现在这样使用变量设置 History_Retentin_Period 属性。这是我目前看到的错误:
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '@RetentionPolicyMonths'.Expecting -, ID, INT, or NUMERIC
我可以使用变量来设置它,还是只能提供数字?