我们通过这样的 sql 创建了一个索引视图:
Select Table1_ID, Count_BIG(*) as Table2TotalCount from Table2 inner join
Table1 inner join... where...
同样在创建视图之后,我们在 Table1_ID 列上设置了聚集唯一索引。
所以 View 由两列组成:
Table1_ID
Table2TotalCount
我们有两个问题:
- 如果我们使用
Count(1)
orCount_BIG(1)
代替Count_BIG(*)
,SQL 不允许我们在 Table1_ID 上设置索引 - 我们如何控制第二列 (
Table2TotalCount
) 的类型 - SQL 为该列提供一个long 可空类型。但是我们想将此列设置为int 不可为空的类型。创建视图后,我们找不到任何更改列类型的方法。我们用于创建视图的 t-sql 也总是将 int 值返回给Table2TotalCount。