2012-12-19 6 views
-1

J'ai 3 bases de données différentes et j'écris des procédures stockées. Est-il possible de trouver des clés étrangères dans des bases de données croisées avec des noms de base de données?
Ex:Comment puis-je trouver des clés étrangères dans des bases de données croisées?

ForeignKey - Nom de la table - Nom de la colonne - nom de la table de référence - nom de la colonne Référence - Référence Nom de la base

+1

Clé étrangère sur DB ou table? Vous ne pouvez pas définir une clé étrangère sur la base de données. –

Répondre

3

relations FK ne peut pas et don n'existent pas à travers les limites de la base de données. Évidemment, vous pouvez avoir des données connexes dans des bases de données distinctes, mais il n'y a pas d'outil ou de méthode pour les trouver autres que la recherche manuelle.

+0

Merci pour votre réponse. – Kadir

0

Pour obtenir toutes les clés étrangères,

select t.name as TableWithForeignKey, fk.constraint_column_id as FK_PartNo , c.name as ForeignKeyColumn 
    from sys.foreign_key_columns as fk 
    inner join sys.tables as t on fk.parent_object_id = t.object_id 
    inner join sys.columns as c on fk.parent_object_id = c.object_id and fk.parent_column_id = c.column_id 
    where fk.referenced_object_id = (select object_id from sys.tables where name = 'TableOthersForeignKeyInto') 
    order by TableWithForeignKey, FK_PartNo 

Ici il vous suffit de changer les noms de db. Référence: get foreign keys

+0

ouais comme @Brian a dit, nous ne pouvons pas avoir de relations FK entre les bases de données et avec ma référence, vous pouvez juste voir les clés étrangères dans dbs. – Mari

Questions connexes