Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

clés étrangères sur la table d'une base de données différente

J'éviterais de faire cela si je le pouvais - pouvez-vous simplement conserver les deux tables dans une base de données et utiliser un FK ?

Les tables parent et enfant se trouvent dans des bases de données différentes.

Bien que vous ne puissiez pas utiliser une clé étrangère dans cette situation, il existe des solutions de contournement - vous pouvez utiliser des déclencheurs ou des UDF enveloppés dans des contraintes de vérification. Dans tous les cas, l'intégrité de vos données n'est pas totalement étanche :si la base de données avec votre table parent tombe en panne et que vous la restaurez à partir d'une sauvegarde, vous pouvez facilement vous retrouver avec des orphelins.

La relation parent-enfant est imposée par des déclencheurs.

Il existe de nombreuses situations dans lesquelles les déclencheurs ne se déclenchent pas, telles que :

· Une table est supprimée.

· Un tableau est tronqué.

· Les paramètres des déclencheurs imbriqués et/ou récursifs empêchent un déclencheur de se déclencher.

De plus, un déclencheur peut être simplement incorrect. Dans tous les cas, vous risquez de vous retrouver avec des orphelins dans votre base de données.