SQL Server中基于函数的索引

时间:2014-03-04 09:43:38

标签: sql sql-server sql-server-2008 indexing expression

我试图了解SQL Server中是否存在类似于Oracle或PostgreSQL中基于函数的索引

在PostgreSQL中,我可以使用以下语法创建基于函数的索引:

CREATE INDEX sample ON "TestDB" (("expression1" || ' ' || "expression2"));

我找到了一个article,我在SQL Server中找到了一个名为“计算列索引”的东西。这是一个基于函数的索引,就像在Oracle / PostgreSQL中一样吗?任何人都可以提供一个示例查询来创建/查看这样的索引吗?

1 个答案:

答案 0 :(得分:20)

我根据Damien的评论进一步研究,发现答案与Oracle / PostgreSQL基于函数的索引非常接近。

我有一个名为PARCELS的表,我使用下面给出的alter语句创建了一个新列COMPUTEDPARCELS

ALTER TABLE [PARCELS] ADD COMPUTEDPARCELS AS CONVERT(CHAR(8), [MAPNO], 112);

然后在计算列上创建索引:

CREATE INDEX function_index ON [PARCELS](COMPUTEDPARCELS);

当然,这个例子非常简单但行为就像一个基于函数的索引。