次の図は、Microsoft SQL Server 2008 R2システムビューの一部です。画像から、sys.partitions
との関係はsys.allocation_units.type
の値に依存することがわかります。一緒に参加するには、私はこれに似たようなものを書くでしょう:JOIN条件でCASE文を使用できますか?
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
ステートメントのためだと思います。 少し説明できますか?
ありがとうございます!
追加のエラーメッセージ:
Msg 102, Level 15, State 1, Line 6 Incorrect syntax near '='.
この美しいDB図を作成するためにどのようなソフトウェアを使用しましたか? – LearnByReading