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 № 1Puedes 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