以下图像是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'='附近的语法不正确.

假设我们的存储过程表现不佳,有6个参数.如果六个参数中的一个被转移到存储过程中的局部变量,那是否足以禁用参数嗅探或是否需要将传递给存储过程的所有6个参数传输到存储过程中的局部变量?