我刚刚安装了SQL Server 2014。
我使用右键单击数据库创建了一个数据库 - >新数据库。我设置了一个名字,我保留了默认选项,然后按下确定。
执行以下查询,我意识到sys.indexes
中无法找到sys.objects
视图中的项目。
Select *
From sys.indexes ind
Where not exists ( select * from sys.objects obj where ind.object_id = obj.object_id )
以上查询返回以下结果:
5575058 plan_persist_plan_cidx
5575058 plan_persist_plan_idx1
21575115 plan_persist_runtime_stats_cidx
21575115 plan_persist_runtime_stats_idx1
37575172 plan_persist_runtime_stats_interval_cidx
37575172 plan_persist_runtime_stats_interval_idx1
53575229 plan_persist_context_settings_cidx
2121058592 plan_persist_query_text_cidx
2121058592 plan_persist_query_text_idx1
2137058649 plan_persist_query_cidx
2137058649 plan_persist_query_idx1
我读到sys.objects
视图没有返回非架构范围的项目,但我找不到与上述项目相关的任何信息。直到今天我使用SQL Server 2012,我对上面的表连接逻辑没有任何问题。
这些是什么类型的物品?
如何区分这些项目(其他=从sys.objects
返回的项目?)
谢谢,
科斯塔斯
答案 0 :(得分:0)
您可以通过选中IsMsShipped对象属性来排除这些项目:
Select *
From sys.indexes ind
Where not exists ( select * from sys.objects obj where ind.object_id = obj.object_id )
And objectproperty( ind.object_id, 'IsMSShipped' ) = 0