跨多个数据库创建视图

Posted

技术标签:

【中文标题】跨多个数据库创建视图【英文标题】:Create view across multiple databases 【发布时间】:2013-07-30 15:32:54 【问题描述】:

我有两个数据库;一个是用于日常数据输入的实时数据库,另一个是用于旧数据的存档数据库。

如何创建一个从两个数据库中获取数据的视图?

涉及三个表...database1.dbo.tabledatabase1.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 主机执行此操作?我怎么会喜欢视图中的那两个数据库服务器? 我有几乎相同的场景,但同一主机上的用户不同。这怎么可能?谷歌告诉我将所有数据库合并为一个,但在我的情况下这是不可行的。

以上是关于跨多个数据库创建视图的主要内容,如果未能解决你的问题,请参考以下文章

跨多个子视图的 SwiftUI 拖动手势

Oracle:跨模式创建视图?

mysql创建视图

MySQL创建视图

身份验证后跨视图控制器保留用户数据

在 Swift 中跨多个选项卡访问相同的视图模型