2016-10-22 94 views
4

我有一个数据库项目与Visual Studio 2015和TFS源代码控制中的SSDT(SQL Server数据工具)。SSDT&TFS:比较SQL Server数据库不工作

今天早上当我试图比较两个数据库(DB - > TFS),它没有工作,我得到了一个错误:

Comparison completed. Difference detected. Restricted comparison. See error list for detail

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

Severity Code Description Project File Line Suppression State Warning The login for the target does not have the VIEW ANY DEFINITION permission. The comparison will be restricted to database scoped elements if the source is a database.

给SSDT

SQL Server用户是sa

在此先感谢

ScreenShot


UPDATE: 我用下面的查询,但主要的问题固定的比较警告存在尚未:

USE [master] 
GO 

Grant VIEW ANY DEFINITION to [USERNAME]; 
GO 

USE [DBNAME] 
GO 

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

你如何比较它们?通过构建定义?发布定义?你正在执行什么命令来比较它们? –

+0

@DanielMann使用模式比较向导 –

+0

那么这与TFS有什么关系?这听起来像是一个Visual Studio或SSDT问题。 –

回答

0

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

1

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

  • 什么模式比较认为不同之处在于 - 单击“过程”左侧的展开按钮。
  • 如果您在比较选项中打开了“忽略空白”。
  • 如果你的文件的行结束的窗口(CR LF)或UNIX(LF)。
  • (暴力解决方案)使用sqlpackage.exe来提取两个数据库的.dacpac,重命名为.zip,并比较两个model.xml的内容 - 在那里会有差别。
+0

我也建议检查两个副本上的文件编码。 –

+0

尊敬的@泰恩您的回答非常有帮助,我正在研究并发现一些新的细节。请让我检查一下 –