以下图像是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
Run Code Online (Sandbox Code Playgroud)
但是上面的代码给出了语法错误.我猜这是因为CASE声明.任何人都可以帮忙解释一下吗?
谢谢!
添加错误消息:
消息102,级别15,状态1,行6'='附近的语法不正确.
