web-dev-qa-db-ja.com

object_idが同じで名前が異なるインデックス

私が走るとき

SELECT
  count(object_id) AS count,
  object_id,
  min(name) as name1,
  max(name) AS name2
FROM
  sys.indexes
GROUP BY object_id HAVING COUNT(*) > 1 ORDER BY count

同じobject_idを持つインデックスのリストを取得しますが、同じ名前である必要はありません。

同じobject_idのすべてのインデックスに同じ名前を付ける必要はありませんか?

2
Anders Lindén

_Object_ID_は、インデックス付きビューやテーブルなど、インデックスが属するオブジェクトに属します。

_object_id_の_sys.indexes_を見ると documentation

object_id-このインデックスが属するオブジェクトのID。

インデックスを一意に識別したい場合は、_Object_ID_ + _index_id_列、または特定の_index_id_の_object_id_が必要です。

これを確認するには、OBJECT_NAME()関数をクエリに追加します

_SELECT
  count(object_id) AS count,
  object_id,
  OBJECT_NAME(object_id),
  min(name) as name1,
  max(name) AS name2
FROM
  sys.indexes
GROUP BY object_id HAVING COUNT(*) > 1 ORDER BY count;
_
8
Randi Vertongen