sql >> Databáze >  >> RDS >> Sqlserver

Přidejte vztah cizího klíče mezi dvě databáze

Budete muset spravovat referenční omezení napříč databázemi pomocí Trigger.

V podstatě vytvoříte spouštěč vložení, aktualizace, abyste ověřili existenci klíče v tabulce primárního klíče. Pokud klíč neexistuje, vraťte vložení nebo aktualizaci a pak zpracujte výjimku.

Příklad:

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

Upraveno: Jen pro objasnění. Toto není nejlepší přístup s prosazováním referenční integrity. V ideálním případě byste chtěli obě tabulky ve stejné databázi, ale pokud to není možné. Pak je pro vás výše uvedené potenciální řešení.



  1. Změna řazení serveru SQL Server na velikost nerozlišující velká a malá písmena?

  2. The Eager Index Spool a The Optimizer

  3. více dotazů stejná tabulka, ale v různých sloupcích mysql

  4. Práce s MyISAM v MySQL