我想编写一个脚本来测试所有链接的服务器,并返回唯一已连接的服务器(可以肯定只有一个)。
这是我当前的脚本,但是我被困在这一点上:
DECLARE @retval INT
DECLARE @connected INT
DECLARE @name NVARCHAR(100)
DECLARE @getid CURSOR
SET @connected = 0
SET @getid = CURSOR FOR
SELECT name as Servers FROM sys.servers
OPEN @getid
FETCH NEXT FROM @getid INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC @retval = sys.sp_testlinkedserver @name
SELECT @name
FETCH NEXT
FROM @getid INTO @name
END
CLOSE @getid
DEALLOCATE @getid
但是使用此查询,代码无法在第一次迭代时停止,因为它无法连接到表的第一台服务器。这是错误消息:
链接服务器“ server1”的OLE DB提供程序“ MSDASQL”返回了消息“通信链接失败;
-10709连接失败(连接超时已过期)”。消息7303,级别16,状态1,过程sp_testlinkedserver,第1行无法为链接服务器“
server1”初始化OLE DB提供程序“ MSDASQL”的数据源对象。
任何想法,如何通过错误消息?
更改了代码中的一些内容……试试吧。
。
DECLARE @name NVARCHAR(100)
declare @table table (IsOff int, ServerName varchar(100), TheError varchar(4000))
DECLARE getid CURSOR FOR
SELECT name FROM sys.servers where is_linked = 1
OPEN getid
FETCH NEXT FROM getid INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
begin try
exec sys.sp_testlinkedserver @name
end try
begin catch
insert into @table
values
(1,@name,ERROR_MESSAGE())
end catch
FETCH NEXT FROM getid INTO @name
END
CLOSE getid
DEALLOCATE getid
select ServerName, TheError from @table where IsOff = 1
问题内容: 我有一个SQL Server 2012.(120.120.55.15) 今天,我将MySQL服务器(120.120.55.30)链接到我的SQLServer,并将其命名为 “ MYSQL”。 在对象资源管理器中,一切似乎都很好。我可以看到 MySQL 服务器的数据库“ exampleDataBase ”和其中的表。 但是当我尝试运行选择查询时,如下所示: 我弄错了: 消息7399,级别
我正在尝试连接两个docker容器,一个是posgresql,另一个是python flask应用程序。两者都链接正确,python应用程序中的所有连接变量都直接取自postgres容器中通过链接公开的连接变量,并且与检查postgresql容器时发现的连接变量相同。当我将psql与连接字符串中的精确参数一起使用时,即: 成功连接到postgres容器中的数据库,因此我知道postgres正在通过
我在运行使用Netty的服务时遇到了问题。它启动和工作正常,但只有一次。在此之后,不接受任何连接(它们将立即被删除)。 当我第一次使用(示例端口,随便什么)连接到服务器时,一切正常: 客户端会话: 服务器日志: --编辑2-- 只要连接处于活动状态,服务器就可以正常工作--在关闭连接之前,我可以轻松地交换请求/响应。 不要被IP地址迷惑,这是一个转发到Docker的本地端口,应用程序就是在那里启动
问题内容: 我希望能够以编程方式(在T-SQL中)检查当前服务器和数据库是否已存在特定的链接服务器(这样,如果该链接尚不存在,则可以创建它)。我尝试过这样的事情: 但是,即使链接已经存在,OBJECT_ID测试也始终返回null。有什么方法可以在T-SQL中执行此检查,以便我的其余代码可以假定链接始终存在? 问题答案: 办理登机手续sys.servers:
问题内容: 我正在尝试将链接的服务器添加到Access数据库。我正在使用以下SQL代码来执行此操作。 但是当我运行这个… 我得到这个错误… OLE DB提供程序’Microsoft.Jet.OLEDB.4.0’不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。我究竟做错了什么? 我在32位系统上使用SQL Server Management Studio 2008。 问题答案: 我想
线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi