Das folgende Bild ist Teil der Microsoft SQL Server 2008 R2-Systemansichten. Aus dem Bild können wir erkennen, dass die Beziehung zwischen sys.partitions
und sys.allocation_units
vom Wert von abhängt sys.allocation_units.type
. Um sie zusammenzufügen, würde ich etwas Ähnliches schreiben:
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
Der obere Code gibt jedoch einen Syntaxfehler aus. Ich denke, das liegt an der CASE
Aussage. Kann jemand helfen, ein wenig zu erklären?
Fehlermeldung hinzufügen:
Meldung 102, Ebene 15, Status 1, Zeile 6 Falsche Syntax in der Nähe von '='.