en UNIQUE

24/09/2003 - 19:04 por VC | Informe spam
Hola:

A ver si alguien sabe responderme.

Es posible crear un indice sobre un campo (no la clave principal) para poder
relacionarlo con otro campo de otra tabla y forzar a que no permita valores
duplicados salvo en el caso de que sea nulo¿?

Es decir, dos registros no podrian tener el mismo valor cuando este es
distinto de nulo, pero sí si son nulos.


En Access basta con decir que un campo es
Requerido: NO
Indexado: Sin (Sin duplicados)

Adios...
Danyan

Preguntas similare

Leer las respuestas

#6 Salvador Ramos
26/09/2003 - 11:59 | Informe spam
Hola:

Los triggers no tienen nada que ver con las actualizaciones en cascada.
Los triggers son unos eventos asociados a las tablas. En ellos introduces
código T-SQL que se ejecutará cuando se produzca una insercion,
actualización y/o borrado en dicha tabla.

Puedes informarte con más de detalle si buscas 'Trigger' en la ayuda. Si
tienes la versión en castellano lo han traducido como 'Desencadenadores'.

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"VC" escribió en el mensaje
news:#
Hola y muchas gracias por las respuestas.

Con lo de usar Triggers supongo que os referis para realizar


actualizaciones
y
eliminaciones es en casacada, no¿?

Lo que comenta Javier Loria de crear tablas, YA ME GUSTARIA PODER HACERLO.
Estoy migrando unas aplicaciones hechas en Access 97 base de datos y
programas a
Access XP y los datos en SQL Server, y añadir tablas intermedias me
obligaria a modificar
demasiadas cosas.
De todos modos lo estudiaré a ver si haciendo eso y creando un par de
consultas que trabajen
con los campos de las tablas actuales, no tengo que modificar los


programas.

Trataré de usar triggers u otra cosa si la hay (es la primera vez que
trabajo con estas caracteristicas
de SQL Server).

Saludos...
Danyan...


Respuesta Responder a este mensaje
#7 VC
29/09/2003 - 19:52 | Informe spam
"Salvador Ramos"
Los triggers no tienen nada que ver con las actualizaciones en cascada.
Los triggers son unos eventos asociados a las tablas. En ellos introduces
código T-SQL que se ejecutará cuando se produzca una insercion,
actualización y/o borrado en dicha tabla.

Puedes informarte con más de detalle si buscas 'Trigger' en la ayuda. Si
tienes la versión en castellano lo han traducido como 'Desencadenadores'.


<<

A lo que me referia, era si la acción que tendrian que realizar los
Triggers, seria
"simular las actualizaciones en cascada" al hacer un update o un delete,
ERROR MIO,
no por qué pense que al quitar el UNIQUE perdia esta propiedad en la
relación.

Entonces si no creo un indice con UNIQUE para que me deje meter más de un
nulo,
el objetivo de los triggers, cual seria¿?, validar duplicados al hacer
updates e inserts para
solo dejar duplicar nulos¿?

Mi duda en estos momentos, más que qué es y como se usan los triggers, que
aprenderlo
es cosa mia ;-), es saber que deberia hacer con ellos.

Un Saludo...
Danyan...
Respuesta Responder a este mensaje
#8 Salvador Ramos
29/09/2003 - 20:16 | Informe spam
Efectivamente, el trigger debería encargarse si el valor no es nulo de
comprobar que no existe en la tabla, para evitar los duplicados.

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, VB, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"VC" escribió en el mensaje
news:
"Salvador Ramos"
> Los triggers no tienen nada que ver con las actualizaciones en cascada.
> Los triggers son unos eventos asociados a las tablas. En ellos


introduces
> código T-SQL que se ejecutará cuando se produzca una insercion,
> actualización y/o borrado en dicha tabla.
>
> Puedes informarte con más de detalle si buscas 'Trigger' en la ayuda. Si
> tienes la versión en castellano lo han traducido como


'Desencadenadores'.
<<

A lo que me referia, era si la acción que tendrian que realizar los
Triggers, seria
"simular las actualizaciones en cascada" al hacer un update o un delete,
ERROR MIO,
no por qué pense que al quitar el UNIQUE perdia esta propiedad en la
relación.

Entonces si no creo un indice con UNIQUE para que me deje meter más de un
nulo,
el objetivo de los triggers, cual seria¿?, validar duplicados al hacer
updates e inserts para
solo dejar duplicar nulos¿?

Mi duda en estos momentos, más que qué es y como se usan los triggers, que
aprenderlo
es cosa mia ;-), es saber que deberia hacer con ellos.

Un Saludo...
Danyan...


Respuesta Responder a este mensaje
#9 Miguel Egea
30/09/2003 - 09:37 | Informe spam
Quizá además para completar la información, en este caso debiera usarse un
trigger de tipo instead off

Saludos Cordiales
=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"Salvador Ramos" escribió en el
mensaje news:
Efectivamente, el trigger debería encargarse si el valor no es nulo de
comprobar que no existe en la tabla, para evitar los duplicados.

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, VB, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"VC" escribió en el mensaje
news:
> "Salvador Ramos"
> > Los triggers no tienen nada que ver con las actualizaciones en


cascada.
> > Los triggers son unos eventos asociados a las tablas. En ellos
introduces
> > código T-SQL que se ejecutará cuando se produzca una insercion,
> > actualización y/o borrado en dicha tabla.
> >
> > Puedes informarte con más de detalle si buscas 'Trigger' en la ayuda.


Si
> > tienes la versión en castellano lo han traducido como
'Desencadenadores'.
> <<
>
> A lo que me referia, era si la acción que tendrian que realizar los
> Triggers, seria
> "simular las actualizaciones en cascada" al hacer un update o un delete,
> ERROR MIO,
> no por qué pense que al quitar el UNIQUE perdia esta propiedad en la
> relación.
>
> Entonces si no creo un indice con UNIQUE para que me deje meter más de


un
> nulo,
> el objetivo de los triggers, cual seria¿?, validar duplicados al hacer
> updates e inserts para
> solo dejar duplicar nulos¿?
>
> Mi duda en estos momentos, más que qué es y como se usan los triggers,


que
> aprenderlo
> es cosa mia ;-), es saber que deberia hacer con ellos.
>
> Un Saludo...
> Danyan...
>
>


Respuesta Responder a este mensaje
#10 Salvador Ramos
30/09/2003 - 09:52 | Informe spam
Totalmente de acuerdo, Miguel

Gracias por la puntualización :-)

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)

"Miguel Egea" escribió en el
mensaje news:#
Quizá además para completar la información, en este caso debiera usarse un
trigger de tipo instead off

Saludos Cordiales
=> Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==>

"Salvador Ramos" escribió en el
mensaje news:
> Efectivamente, el trigger debería encargarse si el valor no es nulo de
> comprobar que no existe en la tabla, para evitar los duplicados.
>
> Un saludo
> Salvador Ramos
> Murcia - España
>
> No puedes conseguir software rápidamente disminuyendo su calidad.
> En cambio, si que lo consigues aumentando la calidad.
>
> www.helpdna.net (información sobre Windows DNA, SQL Server, VB, ...)
>
>
> Microsoft MVP SQL Server
> MCP SQL Server
> PASS Spanish Group (www.sqlpass.org)
>
>
> "VC" escribió en el mensaje
> news:
> > "Salvador Ramos"
> > > Los triggers no tienen nada que ver con las actualizaciones en
cascada.
> > > Los triggers son unos eventos asociados a las tablas. En ellos
> introduces
> > > código T-SQL que se ejecutará cuando se produzca una insercion,
> > > actualización y/o borrado en dicha tabla.
> > >
> > > Puedes informarte con más de detalle si buscas 'Trigger' en la


ayuda.
Si
> > > tienes la versión en castellano lo han traducido como
> 'Desencadenadores'.
> > <<
> >
> > A lo que me referia, era si la acción que tendrian que realizar los
> > Triggers, seria
> > "simular las actualizaciones en cascada" al hacer un update o un


delete,
> > ERROR MIO,
> > no por qué pense que al quitar el UNIQUE perdia esta propiedad en la
> > relación.
> >
> > Entonces si no creo un indice con UNIQUE para que me deje meter más de
un
> > nulo,
> > el objetivo de los triggers, cual seria¿?, validar duplicados al hacer
> > updates e inserts para
> > solo dejar duplicar nulos¿?
> >
> > Mi duda en estos momentos, más que qué es y como se usan los triggers,
que
> > aprenderlo
> > es cosa mia ;-), es saber que deberia hacer con ellos.
> >
> > Un Saludo...
> > Danyan...
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida