L'immagine seguente fa parte delle viste del sistema Microsoft SQL Server 2008 R2. Dall'immagine possiamo vedere che la relazione tra sys.partitions
e sys.allocation_units
dipende dal valore di sys.allocation_units.type
. Quindi, per unirli insieme, scriverei qualcosa di simile a questo:Posso usare l'istruzione CASE in una condizione JOIN?
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
Ma il codice superiore genera un errore di sintassi. Suppongo che sia dovuto alla dichiarazione CASE
. Qualcuno può aiutarmi a spiegare un po '?
Grazie!
Add messaggio di errore:
Msg 102, Level 15, State 1, Line 6 Incorrect syntax near '='.
Quale software hai utilizzato per realizzare questo bellissimo diagramma DB? – LearnByReading