根据此question/answer和MSDN 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
答案 0 :(得分:0)
我无法回答“为什么”的技术问题,可能只有SQL-Server项目的微软开发人员才能充分了解这一点。
但是为什么你没有另一张桌子,比如说T0
会保留2张桌子中任何一张的所有IDs
?您甚至可以从T1
和T2
引用外键约束,引用该T0
表。
当然,这意味着2个表上的插入和删除过程需要额外的工作,但问题已解决:您将在T0 (id)
上拥有主键,这意味着它自动成为索引。