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

Ajouter une relation de clé étrangère entre deux bases de données

Vous auriez besoin de gérer la contrainte référentielle dans les bases de données à l'aide d'un déclencheur.

Fondamentalement, vous créez un déclencheur d'insertion et de mise à jour pour vérifier l'existence de la clé dans la table de clé primaire. Si la clé n'existe pas, annulez l'insertion ou la mise à jour, puis gérez l'exception.

Exemple :

Create Trigger dbo.MyTableTrigger ON dbo.MyTable, After Insert, Update
As
Begin

   If NOT Exists(select PK from OtherDB.dbo.TableName where PK in (Select FK from inserted) BEGIN
      -- Handle the Referential Error Here
   END

END

Modifié : Juste pour clarifier. Ce n'est pas la meilleure approche pour appliquer l'intégrité référentielle. Idéalement, vous voudriez que les deux tables soient dans la même base de données, mais si ce n'est pas possible. Alors ce qui précède est une solution potentielle pour vous.