Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

външни ключове на таблица от различна база данни

Бих избегнал това, ако можех - можете ли просто да запазите и двете таблици в една база данни и да използвате FK?

Родителските и дъщерните таблици са в различни бази данни.

Въпреки че не можете да използвате външен ключ в тази ситуация, има заобиколни решения – можете да използвате тригери или UDF, обвити в ограничения за проверка. И в двата случая целостта на вашите данни не е напълно водоустойчива:ако базата данни с вашата родителска таблица се срине и я възстановите от резервно копие, лесно може да се окажете със сираци.

Връзката родител-дете се налага от тригери.

Има доста ситуации, когато тригерите не се задействат, като например:

· Таблица е изпусната.

· Таблица е съкратена.

· Настройките за вложени и/или рекурсивни тригери предотвратяват задействането на тригер.

Освен това тригерът може просто да е неправилен. Така или иначе може да се окажете със сираци във вашата база данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 начина да проверите дали таблица съществува, преди да я пуснете в SQL Server (T-SQL)

  2. Уникално ограничение, с изключение на NULL стойности

  3. как да въведете ip в сървър, свързан със заявка

  4. Как да получите следващата стойност на последователността на SQL Server в Entity Framework?

  5. Не мога да стартирам браузъра на SQL Server