索引名称在数据库中是唯一的吗?

时间:2009-11-13 21:19:43

标签: sql-server

索引名称是否必须在整个sql server数据库中是唯一的,或者仅针对该表?

例如,我应该为我的索引命名:IX_OrderLoadCarrierDelivery_OrderLoadID

表示OrderLoadID表的OrderLoadCarrierDelivery列。或者我应该将其命名为IX_OrderLoadID

谢谢!

3 个答案:

答案 0 :(得分:22)

对于为其创建的表或视图,它们必须是唯一的。

以下是reference on msdn详细说明了这一点。

FTA:

  

index_name

     

是索引的名称。   索引名称在a中必须唯一   表格或视图但不一定是   在数据库中是唯一的。索引名称   必须遵守标识符规则。

我相信会议是

IX_FieldName

答案 1 :(得分:7)

不,每张桌子。

即sys.indexes中的唯一(object_id,name)列对,而不是sys.objects中的(name)(忽略schema_id)

我还会使用IX_SingleColumnIX_ParentTable之类的内容。与默认或检查约束不同,添加表是多余的,例如,每个数据库都是唯一的

答案 2 :(得分:-4)

它们必须是唯一的,因为所有内容都存储在sysobjects中,并且名称为key 如果您使用SQL管理工作室,那么它是IX_Table_Field语法