Visual studio 2008 与VS2008中MS数据工具的模式比较

Visual studio 2008 与VS2008中MS数据工具的模式比较,visual-studio-2008,sql-server-2008,data-comparison,Visual Studio 2008,Sql Server 2008,Data Comparison,在对目标数据库执行具有db_所有者权限的架构比较时,会导致以下错误: 用户没有执行此操作的权限 使用SQL Server探查器,我发现执行针对主数据库视图:[sys]的查询时会发生此错误。[dm_database_encryption_keys] 虽然特别忽略所有对象类型,但表除外,但可以假定SQL Compare不需要访问db加密密钥。 另请注意: 一种解决方案是将视图服务器状态授予db用户,但在我的情况下,我没有托管数据库服务,也不会获得服务器状态的权限 还尝试在比较文件中排除Databa

在对目标数据库执行具有db_所有者权限的架构比较时,会导致以下错误:

用户没有执行此操作的权限

使用SQL Server探查器,我发现执行针对主数据库视图:[sys]的查询时会发生此错误。[dm_database_encryption_keys]

虽然特别忽略所有对象类型,但表除外,但可以假定SQL Compare不需要访问db加密密钥。 另请注意:

一种解决方案是将视图服务器状态授予db用户,但在我的情况下,我没有托管数据库服务,也不会获得服务器状态的权限

还尝试在比较文件中排除DatabaseEncryptionKey元素

 <PropertyElementName>
    <Name>Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey</Name>
    <Value>ExcludedType</Value>
 </PropertyElementName>

Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey
排除类型
有人能解决这个问题吗

与从数据库项目发布到DTAP环境相比,我们使用MS数据工具

为什么不能尝试其他(外部)模式比较工具?
查看Red gate的SQL Compare。

在VS 2008中是否必须使用MS数据工具? 我认为您应该尝试以下外部工具:


这是比较数据库模式的非常好的工具。您还可以生成脚本来同步架构。

我发现的唯一成功的解决方法是将架构部署到本地开发数据库,然后使用该本地数据库作为源而不是数据库项目进行架构比较


在这种情况下仍然会出现错误,但不再禁用“写入更新”按钮,架构将按预期更新。

遇到此问题时,我将使用此方法进行更新。问题是,发布新版本时需要更多的自动化,在发布到生产环境时需要排除人为错误。