Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

klucze obce w tabeli z innej bazy danych

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula ORDER BY jest nieprawidłowa w widokach, funkcjach wbudowanych, tabelach pochodnych, podzapytaniach i typowych wyrażeniach tabelowych

  2. Python nie może znaleźć sterownika ODBC na Heroku po ustawieniu wszystkiego

  3. Problem z alter then update w try catch z tran przy użyciu Transact-SQL

  4. Jakie są najlepsze praktyki dotyczące używania identyfikatora GUID jako klucza podstawowego, szczególnie w odniesieniu do wydajności?

  5. Jak dodać grupę plików do bazy danych programu SQL Server (T-SQL)