Unikałbym tego, gdybym mógł - czy możesz po prostu trzymać obie tabele w jednej bazie danych i używać FK?
Tabele nadrzędne i podrzędne znajdują się w różnych bazach danych.
Chociaż w tej sytuacji nie można użyć klucza obcego, istnieją rozwiązania tego problemu — można użyć wyzwalaczy lub funkcji UDF opakowanych w ograniczenia sprawdzające. Tak czy inaczej, integralność danych nie jest całkowicie wodoszczelna:jeśli baza danych z tabelą nadrzędną ulegnie awarii i przywrócisz ją z kopii zapasowej, możesz łatwo skończyć jako sieroty.
Relacja rodzic-dziecko jest wymuszana przez wyzwalacze.
Istnieje kilka sytuacji, w których wyzwalacze nie działają, na przykład:
· Stół został usunięty.
· Tabela jest obcięta.
· Ustawienia zagnieżdżonych i/lub rekurencyjnych wyzwalaczy uniemożliwiają uruchomienie wyzwalacza.
Również wyzwalacz może być po prostu niepoprawny. Tak czy inaczej, możesz skończyć z sierotami w swojej bazie danych.