比较Database Project的模式时出错

问题描述 投票:4回答:4

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

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

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

Error    52    Target is unavailable: Value cannot be null.Parameter name: catalogStamp    SqlSchemaCompare2    0    0   
sql-server visual-studio-2012 sql-server-data-tools sqlcompare
4个回答
3
投票

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

我连接的数据库是基于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


0
投票

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


0
投票

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


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.