Externe sleutels kunnen niet worden gekoppeld aan niet-lokale objecten - ze moeten verwijzen naar lokale tabellen. U krijgt de foutmelding "maximaal aantal voorvoegsels" omdat u naar de tabel verwijst met een 4-delige naam (LinkedServer.Database.Schema.Object), en een lokaal object zou slechts een 3-delige naam hebben.
Andere oplossingen :
- Repliceer de gegevens van de bron (de locatie van de weergave) naar dezelfde server als de tabel waaraan u de sleutel probeert toe te voegen. Je kunt dit elk uur, dagelijks of wat dan ook doen, afhankelijk van hoe vaak de brongegevens veranderen.
- Voeg een trigger toe aan de brontabel om eventuele wijzigingen in uw lokale kopie door te voeren. Dit zou in wezen hetzelfde zijn als #1, maar met onmiddellijke populatie van veranderingen
- Voeg een INSTEAD OF"-trigger toe aan uw tabel die handmatig de externe-sleutelbeperking controleert door te selecteren op de gekoppelde server en de waarde te vergelijken die u probeert te INSERT/UPDATE. Als deze niet overeenkomt, kunt u de wijziging weigeren .