【问题标题】:SSDT & TFS: compare SQL Server database not workingSSDT 和 TFS:比较 SQL Server 数据库不工作
【发布时间】:2018-03-03 22:07:45
【问题描述】:

我在 Visual Studio 2015 和 TFS 源代码控制中有一个带有 SSDT(SQL Server Data Tools)的数据库项目。

今天早上,当我尝试比较两个数据库(DB -> TFS)时,它不起作用,并且出现错误:

比较完成。检测到差异。限制比较。详情见错误列表

并且在错误列表窗口中的警告是:

严重性代码描述项目文件行抑制状态 警告 目标的登录没有 VIEW ANY 定义权限。比较将仅限于数据库 如果源是数据库,则为作用域元素。

SSDT 的 SQL Server 用户是 sa

提前致谢


更新: 我通过以下查询修复了比较警告,但主要问题仍然存在:

USE [master]
GO

Grant VIEW ANY DEFINITION to [USERNAME];
GO

USE [DBNAME]
GO

GRANT CONNECT to [USERNAME]
GRANT VIEW DEFINITION TO [USERNAME]

【问题讨论】:

  • 你如何比较它们?通过构建定义?发布定义?你正在执行什么命令来比较它们?
  • @DanielMann 使用模式比较向导
  • 那么这和TFS有什么关系呢?这听起来像是 Visual Studio 或 SSDT 的问题。
  • 您的问题是什么?您发布的错误消息似乎很清楚。
  • @MartinSmith 请注意图片,它告诉我一些差异,但源和目标之间没有变化

标签: sql-server visual-studio sql-server-data-tools


【解决方案1】:

我有一个similar problem。尽管您没有字符串文字,但它可能仍在检查:

  • Schema Compare 认为不同之处在于 - 单击“Procedure”左侧的展开按钮。
  • 如果您在比较选项中打开了“忽略空格”。
  • 如果文件的行尾是 windows (CR LF) 或 unix (LF)。
  • (蛮力解决)使用sqlpackage.exe提取两个数据库的.dacpac,重命名为.zip,比较两个model.xml的内容——哪里会有区别。

【讨论】:

  • 我还建议检查两个副本的文件编码。
  • 亲爱的@Taran,您的回答很有帮助,我正在努力解决这个问题并发现了一些新的细节。请让我检查一下
【解决方案2】:

最后我通过在 MSSQLServer 中删除并重新创建对象解决了这个问题:

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2011-05-30
    • 1970-01-01
    • 2011-08-10
    • 2014-11-04
    • 2023-03-24
    • 2011-08-31
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多