我在两台远程服务器上使用Visual Studio 2015 Update 3和SQL Server 2016,一台具有默认端口,另一台具有非默认端口。
使用SQL架构比较工具比较第一台(默认端口)服务器上的2个数据库时,一切似乎正常。
但是,当我尝试在第二台服务器上使用该工具时,似乎无法选择源。我可以进入源代码设置并查看详细信息(通过SQL Auth)。填充数据库列表(即,可以通过身份验证)。当我按下Connect时,它返回到“选择源模式”窗体,但是没有填充Database文本框,并且OK按钮保持禁用状态。
对于两个服务器,我正在使用的帐户都已被授予SQL Server的完全权限。在SSMS中查询两台服务器上的数据库都工作正常,这表明没有防火墙问题。我唯一看到的区别是第二台服务器具有非默认端口。
我已经没有足够的想法来尝试解决此问题,对于任何建议,我们将不胜感激。
答案 0 :(得分:0)
请确保您在服务器名称中指定了端口,即它看起来应该像SERVER:1234\INSTANCE
,其中1234是实例在其上侦听的端口。如果不是默认实例,则默认情况下该端口为动态端口,除非您将其配置为使用静态端口。但是从您的帖子看来,情况已经如此。
如果在服务器名称中正确指定了端口,但是连接仍然存在问题,则可以尝试为此服务器定义别名。这意味着您要定义一个名称,例如SERVER2
,然后SQL客户端会将其解码为要使用的真实服务器名称和端口。运行C:\Windows\System32\cliconfig.exe
和C:\Windows\SysWOW64\cliconfig.exe
为32/64位客户端定义别名。在“别名”选项卡中,单击“添加...”按钮并为您的服务器定义一个唯一的别名,即您的网络中不存在的别名(屏幕快照中的SERVER2):
然后选择TCP / IP协议,然后在其中输入真实的SQL服务器名称和端口(SERVER和1234)。之后,您应该能够连接到别名(SERVER2),因为它是真实的服务器,而无需完全指定端口。
希望这会有所帮助!