Klucze obce nie mogą być łączone z obiektami nielokalnymi - muszą odwoływać się do lokalnych tabel. Otrzymujesz błąd „maksymalna liczba prefiksów”, ponieważ odwołujesz się do tabeli za pomocą nazwy składającej się z czterech części (LinkedServer.Database.Schema.Object), a obiekt lokalny miałby tylko nazwę składającą się z trzech części.
Inne rozwiązania :
- Replikuj dane ze źródła (lokalizacji widoku) na ten sam serwer, co tabela, do której próbujesz dodać klucz. Możesz to robić co godzinę, codziennie lub cokolwiek, w zależności od tego, jak często zmieniają się dane źródłowe.
- Dodaj wyzwalacz w tabeli źródłowej, aby wypychać wszelkie zmiany w kopii lokalnej. Byłoby to zasadniczo to samo, co #1, ale z natychmiastową populacją zmian
- Dodaj do tabeli wyzwalacz INSTEAD OF, który ręcznie sprawdza ograniczenie klucza obcego, wybierając z połączonego serwera i porównując wartość, którą próbujesz WSTAWIĆ/AKTUALIZOWAĆ. Jeśli nie jest ona zgodna, możesz odrzucić zmianę .