다음 이미지는 Microsoft SQL Server 2008 R2 시스템 뷰의 일부입니다. 이미지에서 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 '='근처의 구문이 잘못되었습니다.