次の画像は、Microsoft SQL Server2008R2システムビューの一部です。画像から、との関係はの値に依存していることが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'='の近くの構文が正しくありません。