?????遇到奇怪现象:远程连接找不到。
明明已经连接远程DB了,但是总是提示[在sys.servers里找不到远程DB连接SUBLNK]。
但是如果把[第一段 开始]~[第一段 结束]的代码屏蔽掉的话,则可以顺利执行。
为什么加了第一段就不行了。
---------------第一段 开始---------------------------------------------------
USE [ABCDB]
GO
IF (EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = 'SP_COPYDATAFROMSUBDB'))
DROP PROCEDURE SP_COPYDATAFROMSUBDB
GO
CREATE PROCEDURE [dbo].[SP_COPYDATAFROMSUBDB]
AS
---------------第一段 结束---------------------------------------------------
---------------------------------远程DB连接---------------------------------
EXEC master.dbo.SP_ADDLINKEDSERVER 'SUBLNK', '','SQLNCLI',N'JCAPP\JCSQLSERVER12R2'
EXEC master.dbo.SP_ADDLINKEDSRVLOGIN 'SUBLNK','false ',NULL, 'sa', 'sa_12345678'
GO
SELECT COUNT(1) FROM SUBLNK.SUBDB.DBO.M_CLIENT WHERE CLIENT_CODE = 'C0101'
EXEC SP_DROPSERVER 'SASLNK ', 'droplogins'
GO
[解决办法]
距我了解,不行,\这个问题可以用:
[HIAPPSRV\JCSQLSERVER201212_R2]来解决
[解决办法]
阳泉酒家小当家,多谢热心帮助啊,按照你的试了一下,一样的错误。
Could not find server 'SUBLNK' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'Link1',
@srvproduct='ms',
@provider=N'SQLNCLI',
@datasrc=N'192.168.1.106,1433'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link1',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'sa',
@rmtpassword='yupeigu'
--查询远程表
select *
from [Link1].test.dbo.t1
/*
消息 7202,级别 11,状态 2,第 18 行
在 sys.servers 中找不到服务器 'Link1'。请验证指定的服务器名称是否正确。
如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。
*/
--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'Link2',
@srvproduct='ms',
@provider=N'SQLNCLI',
@datasrc=N'192.168.1.106,1433'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link2',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'sa',
@rmtpassword='yupeigu'
go
--查询远程表
select *
from [Link2].test.dbo.t1
/*
idv
7NULL
9NULL
1aa
2bb
3cc
4dd
5ee
6ff
8gg
*/