Mam dwa serwery SQL (z uruchomionym programem SQL Server 2008) o nazwach DATA01
i DATA02
. DATA02
ma połączoną definicję serwera LINK
, która wskazuje na DATA01
, z odpowiednią konfiguracją mapowania użytkownika. Na DATA01
tam jest baza MyDatabase
zawierające te dwie tabele:Dlaczego pojawia się błąd "Typ danych Xml nie jest obsługiwany w zapytaniach rozproszonych" podczas wysyłania zapytania do połączonego serwera dla danych innych niż xml?
CREATE TABLE T_A (
Id int
)
CREATE TABLE T_B (
Id int,
Stuff xml
)
Kiedy uruchomić to polecenie z DATA02
, mam dane zwracane zgodnie z oczekiwaniami:
SELECT Id FROM LINK.MyDatabase.dbo.T_A;
Jednak, kiedy uruchomić to polecenie z DATA02
, pojawia się błąd:
SELECT Id, Stuff FROM LINK.MyDatabase.dbo.T_B;
błąd jest
Xml data type is not supported in distributed queries. Remote object 'DATA02.MyDatabase.dbo.T_B' has xml column(s).
i dziwnie to polecenie:
SELECT Id FROM LINK.MyDatabase.dbo.T_B;
również daje ten sam błąd, chociaż nie SELECT
jestem ing kolumnę xml! Co się dzieje?
Można również utworzyć procedurę składowaną w DATA02 i zdalnie wywoływać procedurę zapisaną w bazie, zamiast próbować uruchomić zapytanie zdalnie. –
podczas tworzenia widoku na lokalnym DB, od wyboru identyfikatora zdalnej tabeli DB, otrzymuję ten sam błąd ... SQL SERVER 2008 R2 tutaj – RMiranda
@RMiranda widok musi być utworzony na * zdalnym * DB, następnie z lokalnego DB powinieneś być w stanie zapytać o ten widok za pomocą linku. – AakashM