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

Проблем с външен ключ с множество db в една транзакция

Е, Id колоните не са смислени „ключове“ и те ще ви спънат навсякъде. Предполага се, че те са безсмислени, физически идентификатори, а вие сте им придали значение. Когато изисквате едни и същи Ids съществуват в друга база данни.

Разрешихте ли нарушението на FK? Най-вероятно имате съвсем различен Id за реда DB1, в DB2; и със сигурност различни родителски Ids .

Трябва последователно да не се посочете Id стойност и оставете сървъра да я попълни или винаги посочете Id стойност и в двете бази данни.

Вторият проблем е, че не правите транзакции. Транзакциите с множество db изобщо не са проблем. Така че забравете Id колона, какво съдържа и използвайте истинските ключове за таблицата в двете Dbs. ids ще бъде различен, но на кого му пука (това означава да освободите необходимостта да придавате значение на безсмисления идентификатор).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Вложени транзакции в съхранена процедура

  2. Какъв е най-добрият начин да изберете минималната стойност от няколко колони?

  3. Избор между две дати в поле DateTime - SQL Server

  4. ISDATE() Примери в SQL Server

  5. Изберете елементи като записи от колона в друга таблица