(3.15)跨服务器/实例访问数据库

1.链接数据库

exec sp_addlinkedserver 'csj','','SQLOLEDB','pc'  -- 把【数据库地址pc】与连接名称【csj】绑定
exec sp_addlinkedsrvlogin 'csj','false',null,'sa','123456'   -- 把【用户名sa】和【密码123456】与连接名称【csj】绑定
go 
-- 建立完成之后就可以正常使用了 
select * from csj.bds0040263_db.dbo.Sys_User   --连接名称.数据库名称.dbo.表名称 这是一个完整的sql语句

 exec sp_dropserver 'csj','droplogins'    -- 操作完后,删除【csj】连接名称

[sql]  view plain  copy
 
    1.    
    2. exec sp_addlinkedserver 'csj','','SQLOLEDB','pc'  -- 把【数据库地址pc】与连接名称【csj】绑定  
    3. exec sp_addlinkedsrvlogin 'csj','false',null,'sa','123456'   -- 把【用户名sa】和【密码123456】与连接名称【csj】绑定  
    4. go   
    5. -- 建立完成之后就可以正常使用了   
    6. select * from csj.bds0040263_db.dbo.Sys_User   --连接名称.数据库名称.dbo.表名称 这是一个完整的sql语句   
    7.   
    8.  exec sp_dropserver 'csj','droplogins'    -- 操作完后,删除【csj】连接名称 

2.OPENROWSET函数

需要先在主服务器上更改一个设置,右击主服务器——方面

需要把AdHocRemoteQueriesEnabled属性改为True,默认是false的

--------***此外也可以通过语句来完成上面的操作

[sql]  view plain  copy
 
  1. use master;  
  2. GO  
  3. exec sp_configure 'show advanced option','1';  
  4. reconfigure  
  5. exec sp_configure 'Ad Hoc Distributed Queries','1';  
  6. reconfigure  

如果想关闭远程则可以把‘1’改成‘0’   *****------------

然后就可以通过语句直接访问目标服务器中的数据库了
测试一下:
[sql]  view plain  copy
 
  1. select * from  
  2.     openrowset('SQLNCLI',  
  3.            'Server=127.0.0.1,8888;UID=用户名;PWD=密码;',  
  4.                'select * from 表名')  
 
另外OPENROWSET 是一次性的访问,对于经常性要链接的服务器可以直接添加链接服务器

猜你喜欢

转载自www.cnblogs.com/gered/p/9223569.html