所以我有这样的表结构(简体)索引视图寻找空引用不INNER JOIN或子查询
Create Table Transaction
{
TransactionId INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
ReplacesTransactionId INT
..
..
}
所以我想创建一个索引视图使得下面的例子将返回旧的数据库只有第二个角色(因为它取代了第一个)
Insert Into Transaction (TransactionId, ReplacesTransactionId, ..) Values (1,0 ..)
Insert Into Transaction (TransactionId, ReplacesTransactionId, ..) Values (2,1 ..)
有许多的创建这个查询的方式,但我想创建一个索引视图,这意味着我不能使用子查询,左连接或节选。示例查询(使用LEFT JOIN)可以。
SELECT trans1.* FROM Transaction trans1
LEFT JOIN Transaction trans2 on trans1.TransactionId = trans2.ReplacesTransactionId
Where trans2.TransacationId IS NULL
很明显,我坚持数据库的结构,并希望提高使用数据的应用程序的性能。
有什么建议吗?
如果遇到一个明智的查询不符合索引视图规则的问题,那么很可能任何重新编写查询都会遇到相同规则或另一个同样错误的规则。我看不到修复您所显示的查询。 –