将 Visual Studio 2015 Update 2 中的 SQLServer 项目与数据库 SQL Server 2012 进行比较时,在更改方向时会显示错误“目标不可用”或“源不可用”。
它曾经在几个月前正常工作。有什么解决方法吗?我找不到任何东西。
将 Visual Studio 2015 Update 2 中的 SQLServer 项目与数据库 SQL Server 2012 进行比较时,在更改方向时会显示错误“目标不可用”或“源不可用”。
它曾经在几个月前正常工作。有什么解决方法吗?我找不到任何东西。
我发现使用username@servername作为连接的用户名可以解决 Azure 数据库发生的问题。我的连接在历史上一直有效而没有突然停止,然后这已经为我解决了。
例如,当使用mylogin登录并连接到myserver.database.windows.net时,如果我改为使用mylogin@myserver.database.windows.net作为用户名,我将不会收到“源不可用”问题。
当我使用 SQL Server 身份验证但不保存密码时,我在 Visual Studio 2017 中收到此错误。我已经使用 Visual Studio 15.6.3 和 SQL Server 12.0.5000.0 测试了这些步骤
这解决了问题,但下次我重新启动 Visual Studio 时问题又出现了。
如果你想解决这个错误,这里是我设法重现它的方法。
在这里尝试了一切之后,这对我有用:
关闭 VS 实例。
删除保存的连接密钥
HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\ConnectionMruList
对我来说,这是修复它\
的字段中服务器IP地址末尾的符号。server name
很奇怪。
例如,而不是10.10.10.10
我写10.10.10.10\
,它连接正常。
注意:我使用的是 Visual Studio 2017。
我在这里的其他答案的结果好坏参半。我正在使用另一个开发人员放在一起的保存比较文件。这是一个独立的 SQL Server,而不是一个 azure 数据库。比较有时会起作用,但有时会起作用(给出目标不可用错误)。在我的情况下,保存的比较只是使用服务器名称而不是使用 FQDN。当我更改为 FQDN 时,它对我有用。我不确定问题是否会再次出现,但我想我会添加此信息以防对其他人有用。
尽管此页面上的某些解决方案有时对我有用,但并非总是如此。但是我所描述的这种方法在大多数情况下都对我有用
当您指定服务器名称时,请指定协议和端口
服务器名:tcp:my-server-name,1443
我的服务器名称是 Azure BTW
我在 2015 Visual Studio Professional 版本中尝试过,在比较 SQL 数据时遇到了这个问题,当我使用主机名而不是数据库的 IP 地址时,它对我有用。希望这能解决这个问题。
打开以前保存的 .scmp 文件时出现此错误,该文件在最初创建时成功运行。
该问题是由于保存的连接字符串中缺少密码引起的。源使用集成身份验证,因此 VS 并没有抱怨这一点。
再次选择目标连接没有帮助,可能是因为 VS 使用了缓存的连接字符串。
我通过将Password
参数添加到文件的连接字符串中解决了这个问题。有两个位置指定了目标连接字符串(XPath 如下所示):
/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
在这些编辑之后,我重新打开了 .scmp 文件,比较成功了。
In my case, I just restarted my machine, and it worked fine.
实际上,我在 VS Studio 2015 中遇到了同样的问题。但是由于数据库在我的 PC 上,所以我使用的是 localhost 而不是计算机的实际名称。我只是按照visual studio本身的提议手动选择了计算机服务器,它可以工作。
这里提供的答案都不适合我;我正在使用 SQL Server 和 Visual Studio 2017。我能够通过将服务器的 IP 地址添加到我的主机文件中,然后在连接框中使用该主机名来强制进行比较。
当用户没有执行架构比较操作所需的权限时出现同样的问题https://msdn.microsoft.com/en-us/library/jj889462(v=vs.103).aspx
一个进程阻塞了数据库。执行 kill [spid] 后,它再次工作。
当我在 SQL Server 对象资源管理器窗口中右键单击数据库名称并从那里选择架构比较时,我可以让它工作。如果我尝试使用从“工具”菜单打开的“架构比较”窗口,它永远不会起作用。
我指的是通过 IP 的 SQL 服务器并给了我这个问题。我通过它的 DNS 名称引用它,问题就解决了!
不知道为什么!但是,它是这样工作的:)