跨多个数据库创建视图
Posted
技术标签:
【中文标题】跨多个数据库创建视图【英文标题】:Create view across multiple databases 【发布时间】:2013-07-30 15:32:54 【问题描述】:我有两个数据库;一个是用于日常数据输入的实时数据库,另一个是用于旧数据的存档数据库。
如何创建一个从两个数据库中获取数据的视图?
涉及三个表...database1.dbo.table
和database1.dbo.tran1
在同一个数据库中,database_archived.dbo.table1
:
Create VIEW [dbo].[VW_Table_ALL]
AS
SELECT * FROM database1.dbo.table1
UNION ALL
SELECT * FROM database_archived.dbo.table1 as Data INNER JOIN
database1.dbo.tran1 as Tran ON Data.Tran_id = Tran.Tran_Id
GO
【问题讨论】:
我的视图可以根据上面写的来创建吗? 【参考方案1】:不确定您是否需要 UNION 或 JOIN,但在任何一种情况下,您都可以为另一个数据库中的对象使用三部分名称:
USE database1;
GO
CREATE VIEW dbo.MyView
AS
SELECT columns FROM dbo.LocalTable
UNION ALL
SELECT columns FROM database2.dbo.RemoteTable;
GO
【讨论】:
是否可以跨 mysql 主机执行此操作?我怎么会喜欢视图中的那两个数据库服务器? 我有几乎相同的场景,但同一主机上的用户不同。这怎么可能?谷歌告诉我将所有数据库合并为一个,但在我的情况下这是不可行的。以上是关于跨多个数据库创建视图的主要内容,如果未能解决你的问题,请参考以下文章