SSDT 和 TFS:比较 SQL 服务器数据库不工作
SSDT & TFS: compare SQL Server database not working
我在 Visual Studio 2015 和 TFS 源代码管理中有一个带有 SSDT(SQL 服务器数据工具)的数据库项目。
今天早上,当我尝试比较两个数据库 (DB -> TFS) 时,它不起作用,并且出现错误:
Comparison completed. Difference detected. Restricted comparison. See error list for detail
并且在错误列表中 window 警告是:
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.
SQL SSDT 的服务器用户是 sa
。
提前致谢
更新:
我通过以下查询修复了比较警告,但主要问题还存在:
USE [master]
GO
Grant VIEW ANY DEFINITION to [USERNAME];
GO
USE [DBNAME]
GO
GRANT CONNECT to [USERNAME]
GRANT VIEW DEFINITION TO [USERNAME]
最后我通过在 MSSQLServer 中删除并重新创建对象解决了这个问题:
我有一个 。虽然您没有字符串文字,但它可能仍在检查:
- Schema Compare 认为不同之处在于 - 单击 'Procedure' 左侧的展开按钮。
- 如果您在比较选项中打开了 'Ignore whitespace'。
- 如果您的文件的行尾是 windows (
CR LF
) 或 unix (LF
).
- (暴力破解)用
sqlpackage.exe
提取两个数据库的.dacpac
,重命名为.zip
,比较两个model.xml
的内容- 那里会有差异。
我在 Visual Studio 2015 和 TFS 源代码管理中有一个带有 SSDT(SQL 服务器数据工具)的数据库项目。
今天早上,当我尝试比较两个数据库 (DB -> TFS) 时,它不起作用,并且出现错误:
Comparison completed. Difference detected. Restricted comparison. See error list for detail
并且在错误列表中 window 警告是:
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.
SQL SSDT 的服务器用户是 sa
。
提前致谢
更新: 我通过以下查询修复了比较警告,但主要问题还存在:
USE [master]
GO
Grant VIEW ANY DEFINITION to [USERNAME];
GO
USE [DBNAME]
GO
GRANT CONNECT to [USERNAME]
GRANT VIEW DEFINITION TO [USERNAME]
最后我通过在 MSSQLServer 中删除并重新创建对象解决了这个问题:
我有一个
- Schema Compare 认为不同之处在于 - 单击 'Procedure' 左侧的展开按钮。
- 如果您在比较选项中打开了 'Ignore whitespace'。
- 如果您的文件的行尾是 windows (
CR LF
) 或 unix (LF
). - (暴力破解)用
sqlpackage.exe
提取两个数据库的.dacpac
,重命名为.zip
,比较两个model.xml
的内容- 那里会有差异。