SQL Server中基于函数的索引

Rah*_*wda 14 sql sql-server indexing expression sql-server-2008

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

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

CREATE INDEX sample ON "TestDB" (("expression1" || ' ' || "expression2"));
Run Code Online (Sandbox Code Playgroud)

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

Rah*_*wda 22

我根据Damien的评论进一步研究了一下,发现一个非常接近匹配Oracle/PostgreSQL基于函数的索引的答案.

我有一个表PARCELS,在那里我COMPUTEDPARCELS使用alter语句创建了一个新列,如下所示:

ALTER TABLE [PARCELS] ADD COMPUTEDPARCELS AS CONVERT(CHAR(8), [MAPNO], 112);
Run Code Online (Sandbox Code Playgroud)

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

CREATE INDEX function_index ON [PARCELS](COMPUTEDPARCELS);
Run Code Online (Sandbox Code Playgroud)

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