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

跨数据库做一个视图 该如何做
我想跨数据库做一个视图


库1: 服务器:127.0.0.1 用户名 : sa 密码 :123
库2: 服务器:127.0.0.1 用户名 : as 密码 :456



SELECT t1.*, t2.*,t3.*
FROM 库1.dbo.表一 as t1,库1.dbo.表二 as t2,库2.dbo.表三 as t3
where 库1.dbo.表一.id=库1.dbo.表二.id and 库1.dbo.表一.id2=库2.dbo.表三.id2

------解决方案--------------------
如果跨服务器的话就用链接服务器。
SQL code

--访问不同电脑上的数据库(远程只要联好网就一样)   
    
  --如果经常访问或数据量大,建议用链接服务器   
    
  --创建链接服务器   
  exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'   
  exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'用户名','密码'   
  go   
    
  --查询示例   
  select   *   from   srv_lnk.数据库名.dbo.表名   
    
  --导入示例   
  select   *   into   表   from   srv_lnk.数据库名.dbo.表名   
    
  go   
  --以后不再使用时删除链接服务器   
  exec   sp_dropserver   'srv_lnk','droplogins'   
    
    
  --如果只是临时访问,可以直接用openrowset   
  --查询示例   
  select   *   from   openrowset('SQLOLEDB'   
  ,'sql服务器名';'用户名';'密码'   
  ,数据库名.dbo.表名)   
    
    
  --导入示例   
  select   *   into   表   from   openrowset('SQLOLEDB'   
  ,'sql服务器名';'用户名';'密码'   
  ,数据库名.dbo.表名)