Forums Últimos mensajes - Powered by IBM
 

¡¡¡URGENTE!! RESTRICCION E INDICE

23/11/2004 - 14:03 por Oscar | Informe spam
En SQL Server. Cuando se define una clave
candidata con UNIQUE ¿Qué diferencia hay entre
elegir “restricción” o “índice”?

Necesito una solución "de manual" teórica de exresamente q es la
difencencia, ya q en la aynda de SQL server y en libros no la he encontrado.

Seria preferible q contestara uno de MS a ser posible y si no alguien q lo
sepa y lo escriba o q me dij en q libro y pagina sale.

ES URGENTE, muchas gracias

A parte de poner la soluccion aquí lo agradeceria q me la mandarias a
oscarvianes@hotmail.com.

MUCHAS GRACIAS
 

Leer las respuestas

#1 Maxi
23/11/2004 - 14:29 | Informe spam
Oscar, creo que ayer te respondi por este tema, pero te copio lo que dicen
los libros de MS, para mi es clarito, no se que mas necesitas

==
Crear una restricción única
Cree una restricción única para asegurar que no se introducen valores
duplicados en columnas específicas que no participan en una clave principal.
Dado que una restricción única y una clave principal exigen que haya
unicidad, debe adjuntar una restricción única en lugar de una restricción de
clave principal a una tabla si:

a.. Desea exigir la unicidad en una columna o en una combinación de
columnas. Puede adjuntar varias restricciones únicas a una tabla, mientras
que sólo puede adjuntar una restricción de clave principal a una tabla.


b.. Desea exigir la unicidad en una columna que permite valores nulos.
Puede adjuntar restricciones únicas a columnas que permiten valores nulos,
mientras que sólo puede adjuntar restricciones de clave principal a columnas
que no permiten valores nulos. Cuando adjunta una restricción única a una
columna que permite valores nulos, garantiza que al menos una fila tendrá un
valor nulo en la columna objeto de la restricción.
Para crear una restricción única

1.. En el diagrama de base de datos, haga clic con el botón secundario del
mouse (ratón) en la tabla que va a contener la restricción y, a
continuación, seleccione Propiedades en el menú contextual.
- O bien -

Abra el Diseñador de tablas para la tabla que va a contener la
restricción, haga clic con el botón secundario del mouse en el Diseñador de
tablas y elija Propiedades en el menú contextual.

2.. Haga clic en la ficha Índices/Claves.


3.. Elija Nuevo. Aparece un nombre asignado por el sistema en el cuadro
Nombre del índice.


4.. En Nombre de columna, expanda la lista de columnas y seleccione
aquella a la que desee adjuntar la restricción. Para adjuntar la restricción
a varias columnas, seleccione las columnas adicionales en las filas
subsiguientes.


5.. Active la casilla de verificación Crear UNIQUE.


6.. Seleccione la opción Restricción.
La restricción única se crea en la base de datos al guardar la tabla o el
diagrama.

Si utiliza SQL Server, puede controlar el orden de los valores de clave y la
acción emprendida cuando existen claves duplicadas. Para ello, debe crear
un índice único en lugar de una restricción única. Para obtener más
información, consulte Crear un índice único.



=
Crear un índice único
En SQL Server puede crear un índice único cuando la unicidad es una
característica de los propios datos, pero la combinación de columnas
indizadas no es la misma que la clave principal de la tabla. Por ejemplo, si
tiene previsto realizar consultas frecuentes en la columna del número de la
Seguridad Social (ssn) de la tabla employee (donde la clave principal es
emp_id), y desea asegurarse de que los números de la Seguridad Social sean
únicos, cree un índice único en ssn. Si el usuario especifica el mismo
número de Seguridad Social para más de un empleado, la base de datos muestra
un error y no se puede guardar la tabla.

Cuando se crea o modifica un índice único, se puede establecer una opción
para pasar por alto las claves duplicadas. Si se establece esta opción y se
intenta crear claves duplicadas agregando o actualizando datos que afectan a
varias filas (con las instrucciones INSERT o UPDATE), la fila que ocasiona
los elementos duplicados no se agrega o, en el caso de una actualización, se
descarta.

Por ejemplo, si intenta actualizar "Smith" por "Jones" en una tabla en la
que ya existe una fila denominada "Jones", la tabla resultante tendrá una
fila "Jones" y ninguna fila "Smith". La fila "Smith" original se pierde
porque una instrucción UPDATE es realmente una instrucción DELETE seguida de
una instrucción INSERT. Este es el motivo de la eliminación de la fila
"Smith" y del intento fallido de insertar una fila adicional "Jones". La
transacción completa no se puede deshacer porque el objeto de esta opción es
permitir una transacción a pesar de la presencia de elementos duplicados.

Para crear un índice exclusivo

1.. En el diagrama de base de datos, seleccione la tabla que desee
indizar, haga clic con el botón secundario del mouse (ratón) en la tabla y
elija Índices y claves en el menú contextual.
- O bien -

Abra el Diseñador de tablas para la tabla que desee indizar, haga clic con
el botón secundario del mouse en el Diseñador de tablas y elija Índices y
claves en el menú contextual.

2.. Elija Nuevo. La lista Índice seleccionado muestra el nombre asignado
por el sistema al nuevo índice.


3.. En Nombre de columna seleccione las columnas que desea indizar. You
can select up to 16 columns. Para obtener un rendimiento óptimo, seleccione
sólo una o dos columnas por índice. Para cada columna seleccionada, indique
si el índice organiza los valores de esta columna en orden ascendente o
descendente.


4.. Active la casilla de verificación Crear UNIQUE.


5.. Seleccione la opción Índice.


6.. Seleccione la opción Pasar por alto clave duplicada si desea ignorar
los datos nuevos o actualizados que crearían una clave duplicada en el
índice (con la instrucción INSERT o UPDATE).
El índice se crea en la base de datos al guardar la tabla o el diagrama.

Nota No se puede crear un índice único en una columna individual si dicha
columna contiene NULL en más de una fila. Tampoco se puede crear un índice
único en varias columnas si la combinación de columnas contiene valores NULL
en más de una fila. Estos valores se tratan como duplicados a efectos de
indización.





Salu2
Maxi


"Oscar" escribió en el mensaje
news:
En SQL Server. Cuando se define una clave
candidata con UNIQUE ¿Qué diferencia hay entre
elegir "restricción" o "índice"?

Necesito una solución "de manual" teórica de exresamente q es la
difencencia, ya q en la aynda de SQL server y en libros no la he
encontrado.

Seria preferible q contestara uno de MS a ser posible y si no alguien q lo
sepa y lo escriba o q me dij en q libro y pagina sale.

ES URGENTE, muchas gracias

A parte de poner la soluccion aquí lo agradeceria q me la mandarias a


MUCHAS GRACIAS

Preguntas similares