clés étrangères sur la table de base de données différente
J'ai deux bases de données SQL Server et j'ai une table commune pour les deux bases de données important d'une grande table qui détient les clés étrangères vers d'autres tables. Le problème est que la Table est en DatabaseAet j'ai besoin de consulter les clés étrangères de la table de DatabaseB.
Je sais SQL n'a pas le soutien de la croix-base de données de l'intégrité référentielle quelle est donc la meilleure façon d'atteindre cet objectif? Je pense à la combinaison de deux bases de données et de base de données unique - il ne serait pas question de côté à partir de l'augmentation de la complexité.
Des suggestions?
source d'informationauteur SweetGangster | 2009-09-14
Vous devez vous connecter pour publier un commentaire.
Je voudrais éviter de le faire si je le pouvais - pouvez-vous garder les deux tables dans un datbase et l'utilisation d'un FK?
Tables Parent et Enfant dans les Différentes Bases de données.
Bien que vous ne pouvez pas utiliser une clé étrangère dans cette situation, il existe des solutions de contournement – vous pouvez utiliser des déclencheurs ou des UDFs enveloppé dans la vérification des contraintes. De toute façon, l'intégrité de vos données n'est pas complètement étanche à l'eau: si la base de données avec votre parent de la table se bloque et vous restaurer à partir d'une sauvegarde, vous pouvez facilement se retrouver avec des orphelins.
Relation Parent-Enfant Est Appliquée par des Déclencheurs.
Il y a pas mal de situations lorsque les déclencheurs ne sont pas le feu, tel que:
· Une table est supprimée.
· Un tableau est tronqué.
· Paramètres imbriqués et/ou récursive déclencheurs d'empêcher un déclenchement de tir.
Également un déclencheur peut être juste incorrect. De toute façon, vous pourriez vous retrouver avec des orphelins dans votre base de données.
Voici un article sur la façon d'utiliser le SSIS assistant d'Importation /Exportation:
http://www.databasejournal.com/features/mssql/article.php/3580216/SQL-Server-2005-Import--Export-Wizard.htm
Le moyen le plus facile de faire ceci est juste pour exporter une base de données (j'utilise le plus petit des deux) à n'importe quel format est le plus confortable pour vous, et puis l'importer dans l'autre. Tant que les noms de table sont tous différents, cela ne devrait pas présenter de problème.
Déclencheurs peuvent être écrites pour appliquer l'intégrité référentielle contre les différentes bases de données.