日期:2014-05-18  浏览次数:20435 次

跨服務器操作 Table 的棘手的問題?!
我有一句話:
EXEC   ( 'ALTER     TABLE   [SH-DB-04].BFMDB.DBO.steve_0326   ADD   BBBBB     DATETIME     NULL   '   )
這句話是在一個叫做[SH_DB_02]的服務器的查詢分析器上執行的。
提示語句是:
Server:   Msg   117,   Level   15,   State   1,   Line   1
The   object   name   'SH-DB-04.BFMDB.DBO. '   contains   more   than   the   maximum   number   of   prefixes.   The   maximum   is   2.
提示前綴太多,但是要跨服務器操作Table必需寫三曾前綴!
所以非常棘手啊!!

------解决方案--------------------
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk ', 'droplogins '
go