/ / Cómo hacer una consulta para unir la base de datos local y la base de datos del servidor vinculado - sql, sql-server-2008, link-server

Cómo realizar una consulta para unir la base de datos local y la base de datos del servidor vinculado - sql, sql-server-2008, link-server

He creado un servidor vinculado y le doy el nombre como test.

Cuando escribo una consulta como

select *
from openquery(test, "select * from account")

funciona bien pero cuando ejecuto esta consulta:

select *
from openquery(test, "select * from account join test1 on account.accountid=test1.student_id")

arroja un error

El proveedor OLE DB "SQLNCLI10" para el servidor vinculado "prueba" devolvió el mensaje "La preparación diferida no se pudo completar".

No sé lo que estoy haciendo mal para unirme al servidor.

Respuestas

0 para la respuesta № 1

Puedes probar como:

select * from test.master.dbo.account
join
test.master.dbo.test1
on account.accountid=test1.student_id

igualmente:

select * from test.master.dbo.account

0 para la respuesta № 2

Cuando alguno de los 2 servidores (servidor vinculado yservidor local) utiliza ms sql 2012 y superior. Luego, al crear el servidor vinculado, asegúrese de que en la lista desplegable del proveedor seleccionamos SQL Server Native Client 11.0. La razón por la que seguí recibiendo el error es porque, en Proveedor, seleccioné SQL Server Native Client 10.0 y mi servidor vinculado usa sql2008 y mi servidor local es sql2012

Solución

select * from test.account.dbo.account m
left join
test t
on m.accountid=t.student_id