次の画像は、Microsoft SQL Server 2008 R2のシステムビューの一部です。画像から、sys.partitionsとsys.allocation_unitsの値の関係がに依存していることがわかりますsys.allocation_units.type。したがって、それらを結合するには、次のようなものを書きます。
SELECT *
FROM sys.indexes i
JOIN sys.partitions p
ON i.index_id = p.index_id
JOIN sys.allocation_units a
ON CASE
WHEN a.type IN (1, 3)
THEN a.container_id = p.hobt_id
WHEN a.type IN (2)
THEN a.container_id = p.partition_id
END
しかし、上のコードは構文エラーを出します。それはCASE声明のせいだと思います。誰かが少し説明するのを手伝ってくれる?
エラーメッセージを追加:
メッセージ102、レベル15、状態1、行6「=」付近の構文が正しくありません。
