Sie müssten die referenzielle Einschränkung über Datenbanken hinweg mit einem Trigger verwalten.
Grundsätzlich erstellen Sie einen Insert-Update-Trigger, um die Existenz des Schlüssels in der Primärschlüsseltabelle zu überprüfen. Wenn der Schlüssel nicht existiert, machen Sie die Einfügung oder Aktualisierung rückgängig und behandeln Sie dann die Ausnahme.
Beispiel:
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
Bearbeitet: Nur um klarzustellen. Dies ist nicht der beste Ansatz zur Durchsetzung der referenziellen Integrität. Idealerweise möchten Sie beide Tabellen in derselben Datenbank haben, aber wenn das nicht möglich ist. Dann ist das obige eine mögliche Problemumgehung für Sie.