Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Problema di chiave esterna con più db in una transazione

Bene, Ids le colonne non sono "chiavi" significative e ti faranno inciampare dappertutto. Dovrebbero essere identificatori fisici privi di significato e tu hai attribuito loro un significato. Quando richiedi gli stessi Ids esiste in un altro database.

Hai risolto la violazione FK? Molto probabilmente hai un Ids completamente diverso per la riga DB1, in DB2; e certamente diversi Ids del genitore .

Devi costantemente non specifica un Ids valore e lascia che sia il server a compilarlo, o sempre specifica un Ids valore, in entrambi i database.

Il secondo problema è che non stai pensando a livello transazionale. Le transazioni multidb non sono affatto un problema. Quindi dimentica l'Ids colonna, cosa contiene, e usa le chiavi reali per la tabella, in entrambi i Dbs. Gli Ids sarà diverso, ma chi se ne frega (ciò significa rilasciare la necessità di attribuire un significato all'identificatore privo di significato).