sql >> Database >  >> RDS >> Sqlserver

Externe sleutelrelatie tussen twee databases toevoegen

U zou de referentiële beperking tussen databases moeten beheren met behulp van een trigger.

In principe maakt u een invoeg-, update-trigger om het bestaan ​​van de sleutel in de tabel met primaire sleutels te verifiëren. Als de sleutel niet bestaat, zet u de invoeging of update terug en handelt u de uitzondering af.

Voorbeeld:

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

Bewerkt: Even ter verduidelijking. Dit is niet de beste aanpak om referentiële integriteit af te dwingen. Idealiter zou je beide tabellen in dezelfde db willen hebben, maar als dat niet mogelijk is. Dan is het bovenstaande een mogelijke oplossing voor jou.



  1. hoe het Blob-gegevenstype te gebruiken in Postgres

  2. ORA-00054:resource bezet en ophalen met NOWAIT opgegeven of time-out verlopen

  3. Effectief omgaan met de NULL-waarden met de SQL COALESCE-functie voor beginners

  4. bereken een som van typetijd met behulp van sql