SQL SERVER 2008查询其他数据库

1、访问本地的其他数据库

--启用Ad Hoc Distributed Queries--
exec sp_configure 'show advanced options',1
reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

-- 使用完成后,关闭Ad Hoc Distributed Queries--
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure

exec sp_configure 'show advanced options',0
reconfigure

--SELECT * FROM   opendatasource('SQLOLEDB ','Data Source=ip(或ServerName);User ID=登陆名;Password=密码 ').数据库.dbo.表名(或视图)

SELECT * FROM 
         opendatasource(
          'SQLOLEDB ',
            'Data Source=ITVS;
              User ID=sa;Password=sa')
               .ANSVSP.dbo.serv

 

2、访问其他机器上的数据库

 (1)将远程机器上的sql server远程打开

 (2)将远程机器上的防火墙关掉

SELECT * FROM 
         opendatasource(
          'SQLOLEDB',
            'Data Source=192.168.1.26;
              User ID=sa;Password=sadan ')
               .ANSVSP.dbo.serv

 内联

SELECT a.bah,a.mz,b.* FROM 
         opendatasource(
          'SQLOLEDB',
            'Data Source=192.168.1.26;
              User ID=sa;Password=sadan ')
               .ANSVSP.dbo.serv as a inner join db_local_table b on a.bah=b.id collate Chinese_PRC_90_CI_AI;

--collate Chinese_PRC_90_CI_AI 保持等号两边的排序规则一致即可

 修改

UPDATE b SET b.fhsj=a.date_end FROM 
         opendatasource(
          'SQLOLEDB',
            'Data Source=192.168.1.26;
              User ID=sa;Password=sadan')
               .ANSVSP.[dbo].[View_Funeral_TR] as a inner join hzxxb b on a.id=b.bah collate Chinese_PRC_90_CI_AI WHERE fhsj is null;

 

posted @ 2014-10-23 14:15  韩梦芫  阅读(508)  评论(0编辑  收藏  举报