2009-11-13 10 views
19

¿Los nombres de índice deben ser únicos en toda la base de datos del servidor sql, o solo para esa tabla?nombre del índice debe ser único en la base de datos?

Por ejemplo, en caso de que el nombre de mi índice: IX_OrderLoadCarrierDelivery_OrderLoadID

para la columna de OrderLoadID de la mesa OrderLoadCarrierDelivery. ¿O debería simplemente llamarlo IX_OrderLoadID

Gracias!

Respuesta

19

Deben ser únicos para la mesa o vista para la que fueron creados.

Aquí hay un reference on msdn que detalla esto.

TLC:

index_name

Es el nombre del índice. Los nombres de índice deben ser únicos dentro de una tabla o ver, pero no tienen que ser únicos dentro de una base de datos. Los nombres de índice deben seguir las reglas de los identificadores.

Creo que la convención es

IX_FieldName 
+0

Creo que te refieres a IX_TableName_FieldName. Estás pensando en una relación de clave extranjera. –

+0

parece una convención FK, ¿no? – gbn

+0

@Bob Tienes razón, editarás – Joseph

7

No, por mesa.

es decir, un único (object_id, nombre) par de columnas en lugar de simplemente sys.indexes (nombre) en sys.objects (ignorando schema_id)

También me gustaría usar algo como IX_SingleColumn o IX_ParentTable. La adición de mesa es superflua a diferencia de un defecto o restricción de comprobación, por ejemplo, que es único para cada DB

+0

+1 es por mesa, de hecho. No estoy seguro acerca de todos los representantes y la respuesta aceptada indicando que es por base de datos. ¿Nos estamos perdiendo algo? Las tablas sysindexes pueden tener varias entradas con el mismo nombre, siempre que la identificación (que se relaciona con la tabla, en sysobjects) sea distinta ... – mjv

+0

Los nombres de restricción son únicos [por esquema] (http://msdn.microsoft.com/ en-us/library/ms174979.aspx) (busque "constraint_name"), no la base de datos. –

-4

Tienen que ser único, ya que todo se almacena en sysobjects con el nombre como la clave Si utiliza SQL Management Studio, es IX_Table_Field sintaxis

+1

Incorrecto en ambos casos. – gbn

Cuestiones relacionadas