现在的位置: 首页 > 综合 > 正文

sp_addlinkedserver(网上资料收集)

2018年04月09日 ⁄ 综合 ⁄ 共 3252字 ⁄ 字号 评论关闭

/////////////////////////////SQL SERVER////////////////////////////

Exec sp_droplinkedsrvlogin DBVIP,Null

Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver

      @server='DBVIP',--被访问的服务器别名

      @srvproduct='',

      @provider='SQLOLEDB',

      @datasrc='Server2'   --要访问的服务器

 

EXEC sp_addlinkedsrvlogin

     'DBVIP', --被访问的服务器别名

     'false',

     NULL,

     'sa', --帐号

     'thankyoubobby' --密码

 

Select   *   from DBVIP.pubs.dbo.orders  

 

/////////////////////////////ORACLE////////////////////////////

需要SQL SERVER服务器中安装ORACLE客户端;

Exec sp_droplinkedsrvlogin demo,Null

Exec sp_dropserver demo

go

EXEC sp_addlinkedserver

        @server ='demo', --要创建的链接服务器别名

        @srvproduct='Oracle', --产品名称    

 @provider='MSDAORA', --OLE DB 字符

 @datasrc='ServiceName'   --数据源 oracle"ora92"network"admin"tnsnames.ora 查看

 

EXEC sp_addlinkedsrvlogin

     'demo', --已建立的链接服务器名

     'false', -- 固定 */

     NULL, --为每个登陆SQL SERVER的用户使用此链接服务器,否则写用户名 */

     'userid', --帐号

     'password' –密码

go

 

SELECT * FROM demo.. USERID.TABLE

--注意用大写,因为在Oracle的数据字典中为大写

数据库的格式必须是链接服务器名..ORACLE用户名.表名.

 

SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')

SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')

VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');

如此则在SQL SERVER中就可以访问ORACLE的数据了。

建立的链接服务器可以在企业管理器中看见.

 

/////////////////////////////ACCESS////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai',             --要创建的链接服务器名称 

access',     --产品名称   

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"db.mdb' --数据源 -- 盘符:"路径"文件名 -- ""网络名"共享名"文件名 (网络版本)

GO

 

--创建链接服务器上远程登录之间的映射

--链接服务器默认设置为用登陆的上下文进行

--现在我们修改为连接链接服务器不需使用任何登录或密码

exec sp_addlinkedsrvlogin 'ai','false'

go

 

select * from ai...mytable

 

/////////////////////////////EXCEL////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai_ex',            --要创建的链接服务器名称 

'ex',     --产品名称        

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"mybook.xls' , --数据源 -- 盘符:"路径"文件名-- ""网络名"共享名"文件名 (网络版本)

null,

'Excel 5.0' --OLE DB 提供程序特定的连接字符串

GO

 

----创建链接服务器上远程登录之间的映射

--链接服务器默认设置为用登陆的上下文进行

--现在我们修改为连接链接服务器不需使用任何登录或密码

exec sp_addlinkedsrvlogin 'ai_ex','false'

go

 

--查询数据

select * from ai_ex...sheet3$

 

/////////////////////////////MS SQL////////////////////////////

--建立连接服务器

EXEC sp_addlinkedserver

'ai_mssql',        --要创建的链接服务器名称      

'ms',     --产品名称 

'SQLOLEDB', --OLE DB 字符

'218.204.111.111,3342' --数据源

GO

 

--创建链接服务器上远程登录之间的映射

EXEC sp_addlinkedsrvlogin

'ai_mssql',

'false',

NULL,

'zhangzhe', --远程服务器的登陆用户名

'fish2231' --远程服务器的登陆密码

go

 

--查询数据

select * from ai_mssql.pubs.dbo.jobs

 

--还有一个更简单的办法

--这种方式在链接服务器建立后,它是默认开放RPC

--建立连接服务器

EXEC sp_addlinkedserver

'218.204.111.111,3342', --要创建的链接服务器名称

'SQL Server' --这里就用数据源作名称

GO

 

--创建链接服务器上远程登录之间的映射

EXEC sp_addlinkedsrvlogin

'218.204.111.111,3342',

'false',

NULL,

'zhangzhe', --远程服务器的登陆用户名

'fish2231' --远程服务器的登陆密码

go

 

--查询数据

select * from [218.204.253.131,3342].pubs.dbo.jobs

go

 

 

-------------------------------------------------------------------------

sql服务器A连接到sql服务器B(192.168.5.6)上的数据库,操作方式

IF EXISTS(SELECT * FROM SYS.SERVERS WHERE name='YLDATA')
 Exec sp_droplinkedsrvlogin YLDATA,Null

Exec sp_dropserver YLDATA

EXEC sp_addlinkedserver
      @server='YLDATA',--被访问的服务器别名 (自己定义)
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='192.168.5.6'   --要访问的服务器数据库名称(B)或者ip

EXEC sp_addlinkedsrvlogin
     'YLDATA', --被访问的服务器别名
     'false',
     NULL,
     'sa', --帐号
     '123456' --密码

 

Select   *   from YLDATA.DB_MZ.dbo.CUST  

抱歉!评论已关闭.