如何建立视图的数据是另一台服务器数据

xiaowangtian1117 2009-11-30 12:51:57
如何建立视图的数据是另一台服务器数据
...全文
130 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
aimee_99 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaowangtian1117 的回复:]
已建立连接,在查询分析器中可以查询,但不能建立视图
[/Quote]
在本地建立視圖
然後建立聯結服務器
查詢不行嗎?
xiaowangtian1117 2009-11-30
  • 打赏
  • 举报
回复
远程服务器数据不停的更新
xiaowangtian1117 2009-11-30
  • 打赏
  • 举报
回复
SELECT AUTOTYPE_ID, AUTOTYPE_TYPE
FROM [10.8.15.9\SZDB1].SZVINM.dbo.VINM_AUTOTYPE
可以查询,但不能建立视图
sgtzzc 2009-11-30
  • 打赏
  • 举报
回复
一个方法是在远程的那个服务器上建立视图,建立链接后直接查视图
还有一个方法是把远程的数据导入本地,在本地建立视图来查
xiaowangtian1117 2009-11-30
  • 打赏
  • 举报
回复
已建立连接,在查询分析器中可以查询,但不能建立视图
aimee_99 2009-11-30
  • 打赏
  • 举报
回复
頂1樓~~
sgtzzc 2009-11-30
  • 打赏
  • 举报
回复
先建立连接,再查询
/*不同服务器数据库之间的数据操作*/

--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '

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

--导入示例
select * into 表 from ITSV.数据库名.dbo.表名

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

--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset

--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表

--更新本地表
update b
set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b
on a.column1=b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select *
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A

--3、opendatasource/openrowset
SELECT *
FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
--把本地表导入远程表
netcup 2009-11-30
  • 打赏
  • 举报
回复
用分布式分区视图。
或者用联结服务器,UNION ALL各个不同的服务器。在各个服务器上建立各自的视图,然后在查询的视图里联结各个服务器的视图。
sytdeedee 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sgtzzc 的回复:]
先建立连接,再查询
SQL code/*不同服务器数据库之间的数据操作*/--创建链接服务器exec sp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'exec sp_addlinkedsrvlogin'ITSV','false',null,'用户名','密码'--查询示例select*from ITSV.数据库名.dbo.表名--导入示例select*into 表from ITSV.数据库名.dbo.表名--以后不再使用时删除链接服务器exec sp_dropserver'ITSV','droplogins'--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset--查询示例select*fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--生成本地表select*into 表fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--把本地表导入远程表insertopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)select*from 本地表--更新本地表update bset b.列A=a.列Afromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)as ainnerjoin 本地表 bon a.column1=b.column1--openquery用法需要创建一个连接--首先创建一个连接创建链接服务器exec sp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'--查询select*FROMopenquery(ITSV,'SELECT * FROM 数据库.dbo.表名')--把本地表导入远程表insertopenquery(ITSV,'SELECT * FROM 数据库.dbo.表名')select*from 本地表--更新本地表update bset b.列B=a.列BFROMopenquery(ITSV,'SELECT * FROM 数据库.dbo.表名')as ainnerjoin 本地表 bon a.列A=b.列A--3、opendatasource/openrowsetSELECT*FROMopendatasource('SQLOLEDB','Data Source=ip/ServerName;User ID=登陆名;Password=密码' ).test.dbo.roy_ta--把本地表导入远程表
[/Quote]
up
icelovey 2009-11-30
  • 打赏
  • 举报
回复

给楼主个我数据库里面的例子吧

CREATE VIEW [dbo].[L_UJ_DocNum]
AS
SELECT DocNum
FROM DMSQL.EDoc_Manager.DBO.VW_UJ_DocNum AS VW_UJ_DocNum_1


其中DMSQL为你建立的链接服务器, 怎么建立上面已经有介绍了.
EDoc_Manager是该服务器上面的数据库..其他应该能看明白了吧
icelovey 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaowangtian1117 的回复:]
在“链接服务器”处以建立连接,在查询分析器中可以查询,但不能建立视图
[/Quote]
不明白了, 应该直接用链接服务器建立视图就可以了
aimee_99 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaowangtian1117 的回复:]
在“链接服务器”处以建立连接,在查询分析器中可以查询,但不能建立视图
[/Quote]
在本地建立視圖
然後通過鏈結查詢啊
xiaowangtian1117 2009-11-30
  • 打赏
  • 举报
回复
在“链接服务器”处以建立连接,在查询分析器中可以查询,但不能建立视图
icelovey 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaowangtian1117 的回复:]
SELECT    AUTOTYPE_ID, AUTOTYPE_TYPE
FROM        [10.8.15.9\SZDB1].SZVINM.dbo.VINM_AUTOTYPE
可以查询,但不能建立视图
[/Quote]

那你直接这样不行吗?

CREATE VIEW Vw_01
as
SELECT AUTOTYPE_ID, AUTOTYPE_TYPE
FROM [10.8.15.9\SZDB1].SZVINM.dbo.VINM_AUTOTYPE

icelovey 2009-11-30
  • 打赏
  • 举报
回复
楼主用链接服务器就好了吧``
nalnait 2009-11-30
  • 打赏
  • 举报
回复
链接服务器
xiaowangtian1117 2009-11-30
  • 打赏
  • 举报
回复
程序已经写好,更改太复杂

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧