La siguiente imagen es parte de las vistas del sistema de Microsoft SQL Server 2008 R2. De la imagen podemos ver que la relación entre sys.partitions
y sys.allocation_units
depende del valor de sys.allocation_units.type
. Entonces, para unirlos escribiría algo similar a esto:¿Puedo usar la instrucción CASE en una condición 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
Pero el código superior da un error de sintaxis. Supongo que es por la declaración CASE
. ¿Alguien puede ayudarme a explicar un poco?
Gracias!
Agregar mensaje de error:
Msg 102, Level 15, State 1, Line 6 Incorrect syntax near '='.
¿Qué software usó para hacer este hermoso diagrama DB? – LearnByReading