Le chiavi esterne non possono essere collegate a oggetti non locali:devono fare riferimento a tabelle locali. Viene visualizzato l'errore "numero massimo di prefissi" perché si fa riferimento alla tabella con un nome in 4 parti (LinkedServer.Database.Schema.Object) e un oggetto locale avrebbe solo un nome in 3 parti.
Altre soluzioni :
- Replica i dati dall'origine (la posizione della vista) sullo stesso server della tabella su cui stai tentando di aggiungere la chiave. Puoi farlo ogni ora, ogni giorno o qualsiasi altra cosa, a seconda della frequenza con cui cambiano i dati di origine.
- Aggiungi un trigger sulla tabella di origine per inviare eventuali modifiche alla tua copia locale. Questo sarebbe essenzialmente lo stesso del numero 1, ma con una popolazione immediata di modifiche
- Aggiungi un trigger INSTEAD OF" alla tua tabella che controlla manualmente il vincolo di chiave esterna selezionando dal server collegato e confrontando il valore che stai tentando di INSERT/UPDATE. Se non corrisponde, puoi rifiutare la modifica .