当将 VisualStudio2015Update2中的 SQLServer 项目与数据库 SQLServer2012进行比较时,当更改方向时,将显示错误“ Target is not 可用”或“ Source is 可用”。
几个月前它还能正常工作。有什么变通方法吗? 我找不到。
一个进程正在阻塞数据库。在执行 kill [ spid ]之后,它又工作了。
我发现使用 用户名@servername作为连接的用户名可以修复在 Azure 数据库上发生的问题。我有过一些关系,这些关系一直以来都是有效的,但是没有突然停止,然后这个为我解决了这个问题。
例如,当使用 我的登录名的登录名并连接到 Myserver.database.windows.net时,如果我使用 Mylogin@myserver. database.windows.net作为用户名,就不会出现“源不可用”的问题。
当用户没有执行模式比较操作 https://msdn.microsoft.com/en-us/library/jj889462(v=vs.103).aspx所需的权限时,也会出现同样的问题
其他的答案对我不起作用,因为我是直接使用 SQL Server 而不是 Azure,但在检查了连接字符串的高级属性后,我看到认证被设置为“未指定”,网络库是空的。
我改变了它们,它又起作用了。相当奇怪,因为它让我为连接选择数据库。它只是不允许我比较模式给出的提到的“源不可用”消息。
在尝试了这里的一切之后,下面的方法对我很有效:
关闭 VS 实例。
中删除保存的连接键
MicrosoftVisualStudio 14.0 ConnectionMruList
我在打开以前保存的. scmp 文件时出现了这个错误,该文件在最初创建时成功地工作了。
问题是由于保存的连接字符串中缺少密码造成的。源代码使用了集成身份验证,因此 VS 对此并不抱怨。
再次选择目标连接没有帮助,可能是因为 VS 使用了缓存的连接字符串。
我通过将 Password参数添加到文件中的连接字符串中来解决这个问题。有两个位置指定了目标连接字符串(XPath 如下所示) :
Password
/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
在这些编辑之后,我重新打开了. scmp 文件,并成功地运行了比较。
我指的是 SQL 服务器通过 IP 和给我这个问题。 我通过它的 DNS 名称和它提到的问题得到了解决!
不知道为什么! 但是,它是这样工作的:)
对我来说,是 server name字段中服务器 IP 地址末尾的 \符号修复了它。很奇怪。
server name
\
例如,我写 10.10.10.10\而不是 10.10.10.10,这样就可以连接了。
10.10.10.10\
10.10.10.10
注意: 我正在使用 VisualStudio2017。
在 VisualStudio2017中使用 SQLServer 身份验证但不保存密码时会出现此错误。我已经用 Visual Studio 15.6.3和 SQL Server 12.0.5000.0测试了这些步骤
这修复了问题,但是在下次重新启动 VisualStudio 时,问题又回来了。
如果您想对此错误进行故障排除,以下是我如何设法重现它的。
当我在 SQLServer 对象资源管理器窗口中右键单击数据库名称并从中选择 Schema Compare 时,我可以让它工作。如果我尝试使用“工具”菜单中打开的“模式比较”窗口,那么它永远不会起作用。
我得到的结果与这里的其他答案是混合的。我使用的是另一个开发人员放在一起的保存比较文件。这是一个独立的 SQLServer,而不是蔚蓝色的数据库。比较有时会有效,而其他时候则不会(给出目标是不可用的错误)。在我的例子中,保存的比较只是使用服务器名称,而没有使用 FQDN。当我换成 FQDN 的时候,它对我起作用了。我不确定这个问题是否会再次出现,但是我想我会加入这个信息,以防它对其他人有用。
我在2015年 Visual Studio Professional 版本中尝试过,在 SQL 数据比较时遇到了这个问题,当我使用主机名而不是数据库的 IP 地址时,它对我很有效。希望这能解决这个问题。
我在2015年 VS 工作室也遇到过同样的问题。 但是由于数据库在我的 PC 上,我使用的是 localhost 而不是计算机的实际名称。 我只是手动选择计算机服务器作为在视觉工作室本身的命题和它的工作。
虽然这个页面上的一些解决方案有时对我有用,但不是所有时候。 但我所描述的这种方法,在大多数情况下对我有效
指定服务器名称时,请将协议和端口指定为
Servername: tcp: my-server-name,1443
我的服务器名称是 Azure BTW
这里提供的所有答案都不适合我; 我使用的是 SQLServer 和 VisualStudio2017。通过将服务器的 IP 地址添加到主机文件中,然后在连接框中使用该主机名,我可以强制进行比较。
对我来说,我刚刚重新启动了我的机器,它工作得很好。
我的操作系统: windows 11
查看计算机上的下列程序(附件) ,右键单击并“停止”当前正在运行的“ SQL 服务器(SQLEXPRESS)”副本。
然后我试图再次打开它,它给了我同样的错误,像以前一样... 虽然在一分钟内这样做,程序启动正常像以前一样。
我只是想让你知道我的“补救措施”以防其他人也遇到同样的问题。