当我将Visual Studio 2012中的数据库项目的模式与部署在网络服务器上的远程数据库进行比较时,它工作得很好,但是我无法解决它为什么现在失败的原因。
当我将模式与本地PC上部署的相同数据库进行比较时,它工作正常。因此,似乎比较工具工作,但似乎有远程服务器的问题。我可以用任何方式解决问题。
我与远程服务器进行比较的错误如下:
Error 52 Target is unavailable: Value cannot be null.Parameter name: catalogStamp SqlSchemaCompare2 0 0
答案 0 :(得分: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
答案 1 :(得分:0)
连接到SQL Server时,必须指定登录名和密码。如果您使用没有密码的登录会导致此错误。
答案 2 :(得分:0)
我的数据库是Azure SQL DB,并且正面临此问题,通过使用Visual Studio 2017而不是更改兼容性级别,它为我解决了。
答案 3 :(得分:-2)
如果使用SQL Server登录,您是否可以远程访问启用的SQL DB(启用TCP / IP服务),SQl服务器安全性选项是否允许Windows身份验证和SQL Server登录?