Gambar berikut adalah bagian dari Tampilan Sistem Microsoft SQL Server 2008 R2. Dari gambar tersebut kita dapat melihat bahwa hubungan antara sys.partitions
dansys.allocation_units
tergantung pada nilai sys.allocation_units.type
. Jadi untuk bergabung dengan mereka, saya akan menulis sesuatu yang mirip dengan ini:
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
Tetapi kode bagian atas memberikan kesalahan sintaksis. Saya kira itu karenaCASE
pernyataan itu. Adakah yang bisa menjelaskan sedikit?
Tambahkan pesan kesalahan:
Msg 102, Level 15, Negara 1, Baris 6 Sintaks salah dekat '='.