【发布时间】:2014-12-06 00:37:48
【问题描述】:
这是难题...
我在同一个 SQL Server 2008 R2 实例上有 2 个数据库。
DB-One 用于网站,DB-two 是每天从转储中更新的数据。
现在我想在 DB-One 上创建一个索引视图,我在其中引用来自 DB 2 的 2 个表。
所以我的查询类似于
SELECT
TBA.COLA, TBB.COlA
FROM
DB-ONE.TBA.COLA A
JOIN
DB-TWO.TBB.COLA B ON (A.Id= B.Id)
现在这个查询工作正常,很明显......但是,如果我尝试使用以下语法创建一个视图,它会给我一个错误
CREATE VIEW TESTVIEW WITH SCHEMABINDING AS
错误:
无法架构绑定视图“TESTVIEW”,因为名称“DB-ONE.TBA.COLA A”对于架构绑定无效。名称必须采用两部分格式,并且对象不能引用自身。
如果这种方法不可行,那么任何人都可以提出任何替代方案吗?
【问题讨论】:
-
在索引视图中,您不能引用另一个数据库中的表...
-
好的。你能推荐一个替代方案吗?
-
一种替代方法是安排一个计划的 ETL 作业,将视图数据保存在两个数据库之一的表中,根据需要对该表进行索引,然后安排 ETL 在每日“数据”之后加载转储”。
-
也许我要求太多了。但是你能用一个小例子写一个简短的答案,说明我将如何做到这一点
标签: sql sql-server sql-server-2008-r2