4

它之前工作正常,当我将 Visual Studio 2012 中的数据库项目的架构与部署在网络服务器上的远程数据库进行比较时,但我无法解决它现在失败的原因。

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

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

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

4 回答 4

3

我最近遇到了同样的问题,可能与原始海报的原因不同,但在我的情况下,这取决于我连接到的数据库的兼容性级别。

我连接的数据库是基于 Azure 的,微软最近将这些更新到默认兼容级别 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-等级

于 2017-10-11T13:46:56.527 回答
0

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

于 2014-07-18T16:38:55.603 回答
0

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

于 2018-09-04T06:19:26.060 回答
-2

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

于 2013-07-22T15:19:41.613 回答