Foreign key en tablas de diferentes BD

29/12/2005 - 21:21 por Carlos | Informe spam
¿Es posible crear una Foreign Key entre tablas que están en diferentes bases
de datos?
Utilizando Sql Server 2005.

Gracias.

Preguntas similare

Leer las respuestas

#1 Maxi
29/12/2005 - 21:25 | Informe spam
No, vas a tener que usar Triggers


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos" escribió en el mensaje
news:
¿Es posible crear una Foreign Key entre tablas que están en diferentes
bases
de datos?
Utilizando Sql Server 2005.

Gracias.
Respuesta Responder a este mensaje
#2 qwalgrande
30/12/2005 - 13:30 | Informe spam
Hola.

Existen otras alternativas que no exigen el uso de triggers, como
gestionarlo desde la lógica de la aplicación, crear procedimientos
almacenados que se encarguen de las modificaciones en esa tabla, etc.

Alberto López Grande (qwalgrande)


"Maxi" escribió:

No, vas a tener que usar Triggers


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos" escribió en el mensaje
news:
> ¿Es posible crear una Foreign Key entre tablas que están en diferentes
> bases
> de datos?
> Utilizando Sql Server 2005.
>
> Gracias.



Respuesta Responder a este mensaje
#3 Leandro Sgallari MCSE-MCT
30/12/2005 - 13:43 | Informe spam
como bien dice maxi, vas a tener que usar un trigger.
Es lo más recomendable, porque eso va a hacer que la restrccion se fuerce
desde el motor y entres desde donde entres, lo cumple.

salu2



Leandro Sgallari
MCSE-MCDBA-MCT-MCSA

NOTA. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.




"Maxi" escribió en el mensaje
news:e4cs%
No, vas a tener que usar Triggers


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos" escribió en el mensaje
news:
¿Es posible crear una Foreign Key entre tablas que están en diferentes
bases
de datos?
Utilizando Sql Server 2005.

Gracias.




Respuesta Responder a este mensaje
#4 Maxi
30/12/2005 - 14:22 | Informe spam
Hola, si es cierto, pero yo no comparto esa logica, para mi todo que se
refiere a integridad debe estar dentro del motor y dejar a cada capa hacer
lo que debe hacer. He visto sistemas que ponen la integridad afuera y encima
la llaman logica de negocios (que cosa no) y no sabes la cantidad de
problemas que tienen, luego llaman al consultor de SQL para que les haga
magia ;-)


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
Hola.

Existen otras alternativas que no exigen el uso de triggers, como
gestionarlo desde la lógica de la aplicación, crear procedimientos
almacenados que se encarguen de las modificaciones en esa tabla, etc.

Alberto López Grande (qwalgrande)


"Maxi" escribió:

No, vas a tener que usar Triggers


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos" escribió en el mensaje
news:
> ¿Es posible crear una Foreign Key entre tablas que están en diferentes
> bases
> de datos?
> Utilizando Sql Server 2005.
>
> Gracias.



Respuesta Responder a este mensaje
#5 qwalgrande
31/12/2005 - 00:20 | Informe spam
Hola.

Como teoría, bueno, está claro, todo lo que sea integridad referencial,
debería estar dentro del motor. Pero los medios para conseguirlo han de ser
coherentes y a mí poner un trigger en una tabla de una base de datos que
realice acciones en otra base de datos no me parece buena idea, porque
vinculas ambas bases de datos de una forma muy fuerte, con la gestión
transaccional y las pegas en la administración que conllevan los triggers.

Si esa relación es tal, lo lógico es que las tablas estén en la misma base
de datos, no en dos diferentes con triggers que las mantengan. Si no es
posible que estén en la misma base de datos, habría que estudiar el caso, ya
que es suficientemente complejo como para no decantarse por una solución
como los triggers así como así, por muchos principios que se puedan tener.

Así que ante la pregunta de Carlos, si es posible crear una foreign key
entre tablas de diferentes bases de datos, la respuesta que yo daría es
sencillamente "No, las tablas han de estar en la misma base de datos.
Cuéntanos un poco más sobre tu caso para ver cuál sería la mejor solución."

Como siempre, es mi opinión y en este caso sólo pretendía ampliar un poco el
abanico de posibilidades que le has ofrecido a Carlos sobre su duda. Pero
para eso está el foro, para compartir opiniones, discrepar y aprender lo que
se pueda.

Alberto López Grande (qwalgrande)

"Maxi" escribió en el mensaje
news:%
Hola, si es cierto, pero yo no comparto esa logica, para mi todo que se
refiere a integridad debe estar dentro del motor y dejar a cada capa hacer
lo que debe hacer. He visto sistemas que ponen la integridad afuera y
encima la llaman logica de negocios (que cosa no) y no sabes la cantidad
de problemas que tienen, luego llaman al consultor de SQL para que les
haga magia ;-)


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
Hola.

Existen otras alternativas que no exigen el uso de triggers, como
gestionarlo desde la lógica de la aplicación, crear procedimientos
almacenados que se encarguen de las modificaciones en esa tabla, etc.

Alberto López Grande (qwalgrande)


"Maxi" escribió:

No, vas a tener que usar Triggers


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos" escribió en el mensaje
news:
> ¿Es posible crear una Foreign Key entre tablas que están en diferentes
> bases
> de datos?
> Utilizando Sql Server 2005.
>
> Gracias.









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