比较Database Project的模式时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较Database Project的模式时出错相关的知识,希望对你有一定的参考价值。

当我将Visual Studio 2012中的数据库项目的模式与部署在网络服务器上的远程数据库进行比较时,它工作得很好,但是我无法解决它为什么现在失败的问题。

当我将模式与部署在本地PC上的相同数据库进行比较时,它工作正常。因此,似乎比较工具工作,但似乎有远程服务器的问题。我可以用任何方式解决问题。

我与远程服务器进行比较的错误如下:

Error    52    Target is unavailable: Value cannot be null.Parameter name: catalogStamp    SqlSchemaCompare2    0    0   
答案

我最近遇到了同样的问题,可能与原始海报没有相同的原因,但在我的情况下,它归结为我连接的数据库的兼容级别。

我连接的数据库是基于Azure的,Microsoft最近将这些更新为默认兼容级别140(相当于SQL 2017)。之前的实例在较早的级别上运行,并且直接从关闭运行,运行以下修复了我的问题:

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120

显然,在对任何生产数据库进行兼容性级别更改之前,请务必检查任何副作用!

正如Thibault在下面评论的那样,如果您想检查现有的兼容性级别,您可以使用:

SELECT name, compatibility_level FROM sys.databases 

如果你想看看不同兼容性级别的相关版本,请查看https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

另一答案

连接到SQL Server时,必须指定登录名和密码。如果您使用没有密码的登录,则会出现此错误。

另一答案

我的数据库是Azure SQL DB并且正面临这个问题,它通过使用Visual Studio 2017而不是更改兼容性级别来解决。

另一答案

如果您使用SQL Server登录,您是否可以远程访问启用的SQL DB(启用TCP / IP服务)您的SQl服务器安全选项是否允许Windows身份验证和SQL Server登录?

以上是关于比较Database Project的模式时出错的主要内容,如果未能解决你的问题,请参考以下文章

基于旋转更新约束(X,Y,W,H)时出错?

Django 测试:创建测试数据库时出错:数据库“database_name”已存在

插入 android.database.sqlite.SQLiteConstraintException 时出错:NOT NULL 约束失败:result.high(代码 1299)

thinkphp 出错 :1046:No database selected [ SQL语句 ] : 解决

Update-Database 命令在建立与服务器的连接时出错(代码优先迁移)

Update-Database - (localdb) MSSQLLocalDB出错