web-dev-qa-db-ja.com

SQL Serverの関数ベースのインデックス

OracleやPostgreSQLと同様の関数ベースのインデックスがSQL Serverに存在するかどうかを理解しようとしています

PostgreSQLでは、次の構文を使用して、関数ベースのインデックスを作成できます。

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

SQL Serverで「計算列のインデックス」と呼ばれるものを見つけた article を見つけました。これは、Oracle/PostgreSQLのように関数ベースのインデックスですか?誰でも私にそのようなインデックスを作成/表示するためのサンプルクエリを提供できますか?

16

Damienのコメントに基づいてさらに調査したところ、Oracle/PostgreSQLの関数ベースのインデックスのマッチングに非常に近い答えが見つかりました。

PARCELSという名前のテーブルがあり、以下のように、alterステートメントを使用して新しい列COMPUTEDPARCELSを作成しました。

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

次に、計算された列にインデックスを作成します。

CREATE INDEX function_index ON [PARCELS](COMPUTEDPARCELS);

もちろん、例はかなり単純ですが、関数ベースのインデックスと同じように動作します。

24