2013-02-06 48 views
3

數據庫中的每個對象都有自己的object_id。索引SQLServer object_id?

我們可以在sys.objects或特定類型的視圖(sys.tables,sys.key_contraints,...)中找到對象及其object_ids的列表。

現在我的問題是索引有自己的object_ids嗎?從我發現它似乎不是。如果不是,那爲什麼不呢?它看起來像任何其他對象(PK,FK,...)給我。即使默認約束也有自己的object_id。

感謝您的澄清。這是「內部問題」的問題,我不是特別想做什麼,我只是想明白爲什麼事情是這樣的。

+0

不,他們沒有自己的對象ID。這隻與'sys.objects'中的元數據條目有關(或關聯的基表更準確)。 –

+0

在那裏的對象名稱需要在特定的模式中是唯一的,所以從那裏的缺席對於避免衝突非常有益,但是的確意味着目前我們沒有得到存儲在任何地方的索引的'create_date'。 –

+0

@MartinSmith好的,明白了,謝謝。我可以創建具有相同名稱的IDX,比如在其他表上使用PK約束。但我仍然不理解底層原則,爲什麼索引沒有元數據條目?你自己指出,其中一些會很有用(創建數據,修改日期,...)。甚至更多,所以我認爲它只會增加混淆,你可以將它命名爲其他對象...:/ – NeverStopLearning

回答

0

索引在(object_id,index_id)上是唯一的。也就是說,給定表的所有索引在sys.indexes中都有相同的object_id,但會有不同的index_id。

+0

謝謝,不幸的是它並沒有真正回答我的問題「爲什麼」。 – NeverStopLearning