sql-server – DACPAC和SQL序列
我有一个Visual Studio数据库项目(DACPAC),其中包含许多SQL序列.但是,当我部署DACPAC时,它总是将序列值重置为Create脚本中包含的默认值(在本例中为1).例如
CREATE SEQUENCE [dbo].[MySequence] AS INT START WITH 1 INCREMENT BY 1; 任何人都可以建议一种方法来指示DACPAC忽略序列起始值,或者某种方式让DACPAC恢复正确的值作为部署后的步骤吗? 提前致谢 解决方法当使用SSDT工具时,这是序列的已知问题.有几种解决方案.>发布时忽略序列对象. 1.发布时忽略序列对象 这是最简单的选项,但最尴尬,因为这意味着您必须手动部署序列. <ExcludeSequences>True</ExcludeSequences> 或者,从命令行 /p:ExcludeObjectType=Sequences 2.使用自定义部署筛选器 首先下载AgileSqlClub’s部署过滤器. <AdditionalDeploymentContributors>AgileSqlClub.DeploymentFilterContributor</AdditionalDeploymentContributors> <AdditionalDeploymentContributorArguments>SqlPackageFilter=IgnoreName(Order_No_Seq)</AdditionalDeploymentContributorArguments> 或者,从命令行: /p:AdditionalDeploymentContributors=AgileSqlClub.DeploymentFilterContributor /p:AdditionalDeploymentContributorArguments="SqlPackageFilter=IgnoreName(Order_No_Seq)" 3.使用sp_sequence_get_range 为此而不是在生产服务器上使用RESTART WITH来更改起始值,请使用: DECLARE @range_first_value SQL_VARIANT; EXEC sp_sequence_get_range @sequence_name = 'MySequence',@range_size = 1000,@range_first_value = @range_first_value OUTPUT; 这样,起始值将始终与部署脚本中的预期值匹配. 资源 > Connect issue – 这个链接已经死了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |