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

Bro*_*ing 24 sql-server

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

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

对于表的OrderLoadIDOrderLoadCarrierDelivery.或者我应该命名它IX_OrderLoadID

谢谢!

Jos*_*eph 23

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

这是msdn上的一个参考资料.

FTA:

INDEX_NAME

是索引的名称.索引名称在表或视图中必须是唯一的,但在数据库中不必是唯一的.索引名称必须遵循标识符规则.

我相信会议是

IX_FieldName
Run Code Online (Sandbox Code Playgroud)

  • 我认为你的意思是 IX_TableName_FieldName。您正在按照外键关系的思路进行思考。 (2认同)

gbn*_*gbn 7

不,每张桌子.

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

我也会用IX_SingleColumn或者像IX_ParentTable.与默认或检查约束不同,添加表是多余的,例如,每个数据库都是唯一的

  • 事实上,每张桌子+1。不确定所有代表和接受的答复是否表明它是每个数据库。我们错过了什么吗?sysindexes 表可以有多个同名条目,只要 id(与 sysobjects 中的表相关)不同...... (2认同)