代码之家  ›  专栏  ›  技术社区  ›  Ralf de Kleine

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

  •  2
  • Ralf de Kleine  · 技术社区  · 16 年前

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

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

    使用SQL Server探查器,我发现在执行以主数据库视图:[sys].[dm\u database\u encryption\u keys]为目标的查询时会出现此错误

    桌子 有人会假设SQL Compare不需要访问db加密密钥。 另请注意:

    http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/c11a5f8a-b9cc-454f-ba77-e1c69141d64b/

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

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

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

    我们使用MS-Data工具将数据库项目发布到DTAP环境中。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Jon    15 年前

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

    在这种情况下仍然会出现错误,但是 Write Updates 按钮不再被禁用,架构将按预期更新。

        2
  •  0
  •   rkellerm    16 年前

    看看红门的SQL比较。

        3
  •  0
  •   Christofel    16 年前

    我想你应该试试这样的外部工具:

    SQLDBDiff

    推荐文章