为什么不允许在索引视图中使用UNION

时间:2013-07-11 14:30:42

标签: sql sql-server tsql

根据此question/answerMSDN documentation,在设计索引视图时无法使用UNION关键字。

为什么从技术上来说是DBMS的一个问题?

在这种情况下,允许在VUnion(ID)上添加索引非常有用:

CREATE TABLE T1 (ID INT, Name NVARCHAR(100))
CREATE TABLE T2 (ID INT, Info NVARCHAR(1000))

CREATE VIEW VUnion
AS
SELECT ID FROM T1
    UNION
SELECT ID FROM T2
END

1 个答案:

答案 0 :(得分:0)

我无法回答“为什么”的技术问题,可能只有SQL-Server项目的微软开发人员才能充分了解这一点。

但是为什么你没有另一张桌子,比如说T0会保留2张桌子中任何一张的所有IDs?您甚至可以从T1T2引用外键约束,引用该T0表。

当然,这意味着2个表上的插入和删除过程需要额外的工作,但问题已解决:您将在T0 (id)上拥有主键,这意味着它自动成为索引。