2013-02-06 4 views
3

데이터베이스의 각 개체에는 고유 한 object_id가 있습니다.인덱스에 대한 SQLServer object_id?

개체 목록과 해당 object_ids는 sys.objects 또는 특정 형식 (sys.tables, sys.key_contraints ...)의보기에서 찾을 수 있습니다.

이제 내 질문에 색인이 자체 object_ids가 있습니까? 내가 찾은 것에서는 그렇지 않다. 그렇지 않다면, 그 이유는 무엇입니까? 그것은 나에게 다른 어떤 물건 (PK, FK, ...)처럼 보인다. 기본 제약조차도 고유 한 object_id를가집니다.

설명해 주셔서 감사합니다. 이것은 "내부"문제입니다. 특히 어떤 것을 성취하려고하지 않고, 사물이 그대로있는 이유를 이해하고 싶습니다.

+0

아니요 자신의 개체 ID가 없습니다. 이것은'sys.objects' (또는보다 정확한 연관 기본 테이블)에 메타 데이터 항목이있는 항목에만 관련이 있습니다. –

+0

거기에있는 객체 이름은 특정 스키마 내에서 고유해야하므로 충돌을 피하는 데 상당히 유익하지만 현재는 어디에도 저장된 색인에 대해 'create_date'를 얻지 못한다는 것을 의미합니다. –

+0

@MartinSmith 알았어, 고마워. 다른 테이블에 PK 제약 조건과 같은 이름을 가진 IDX를 만들 수 있습니다. 하지만 여전히 기본 원칙을 이해하지 못하는데 왜 색인에 메타 데이터 항목이 없습니까? 자신 중 일부는 유용 할 것이라고 지적합니다 (데이터 작성, 날짜 수정 ...). 그리고 더 많이 생각하기 때문에 혼란스러워서 다른 물건처럼 이름을 붙일 수 있다고 생각합니다./ – NeverStopLearning

답변

0

색인은 (object_id, index_id)에서 고유합니다. 주어진 테이블의 모든 인덱스는 sys.indexes에서 동일한 object_id를 갖지만 다른 index_id를 갖습니다.

+0

불행히도, 그것은 정말로 "왜"내 질문에 대답하지 않습니다. – NeverStopLearning