funciones remotas

30/04/2007 - 16:06 por etragu | Informe spam
buenas
se puede hacer referencia a una funcion externa de un servidor vincularo?

ejemplo, en el servidor local anda esto
select *, fn_estado(id) from tabla1

se puede hacer
select *, serverx.basedatos.dbo.fn_estado(id) from
serverx.basedatos.dbo.tabla1


gracias

Preguntas similare

Leer las respuestas

#6 Manuel Etcheto
03/05/2007 - 00:18 | Informe spam
Hola:
Con permiso del maestro Loria, también podrías llamarla directamente con
OPENROWSET si no quieres/puedes hacer una vista en el otro server.

SELECT * FROM OPENROWSET('SQLOLEDB' ,
'Server='serverx;Database=ips;UidªA;pwd»B;' ,
select *, fn_estado(id) from tabla1')

Lo de que "Todos los objetos a los que hace referencia la función deben
encontrarse en
la misma base de datos que la función" vale solamente cuando se quiere
enlazar la función al esquema.
Una función puede referenciar a objetos en otras bases de datos e incluso en
otros Servidores.
Me pareció importante aclararlo.
Salu2
Manuel


"Javier Loria" escribió en el mensaje
news:
Hola:
Lo que dice la documentacion es:
==> Todos los objetos a los que hace referencia la función deben encontrarse
en la misma base de datos que la función. Se debe hacer referencia a los
objetos mediante nombres de una o dos partes.
==> Para evitar la limitacion podrias crear una vista local que apunta a la
tabla remota. Esto de por si es una buena practica para poder facilitar el
mantenimiento del sistema.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"etragu" <Nando> wrote in message
news:
exacto maxi, pero no anda

desde el servery ejecuto

select serverx.ips.dbo.fn_afiestado(datperid)
from serverx.ips.dbo.datospersonales

y el resultado es

Servidor: mensaje 117, nivel 15, estado 1, línea 1
El nombre objeto 'serverx.ips.dbo.' contiene demasiados prefijos. El
máximo
es 2.

sin embardo desde serverx la consulta anda bien

gracias



"Maxi" escribió en el mensaje
news:
Hola, la sintaxis es

servidor.bdd.owner.objeto


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"etragu" <Nando> escribió en el mensaje
news:
> pero no me anda!!
>
> Servidor: mensaje 117, nivel 15, estado 1, línea 1
> El nombre objeto 'server.tablas.dbo.' contiene demasiados prefijos. El
> máximo es 2.
>
>
> "Maxi" escribió en el mensaje
> news:
>> Si
>>
>>

-


>> Microsoft M.V.P en SQLServer
>> SQLTotal Consulting - Servicios en SQLServer
>> Email:
>> "etragu" <Nando> escribió en el mensaje
>> news:
>> > buenas
>> > se puede hacer referencia a una funcion externa de un servidor
> vincularo?
>> >
>> > ejemplo, en el servidor local anda esto
>> > select *, fn_estado(id) from tabla1
>> >
>> > se puede hacer
>> > select *, serverx.basedatos.dbo.fn_estado(id) from
>> > serverx.basedatos.dbo.tabla1
>> >
>> >
>> > gracias
>> >
>> >
>>
>>
>
>









Respuesta Responder a este mensaje
#7 etragu
03/05/2007 - 15:00 | Informe spam
quedo aclarado, muchas gracias a todos.


"Manuel Etcheto" escribió en el mensaje
news:
Hola:
Con permiso del maestro Loria, también podrías llamarla directamente con
OPENROWSET si no quieres/puedes hacer una vista en el otro server.

SELECT * FROM OPENROWSET('SQLOLEDB' ,
'Server='serverx;Database=ips;UidªA;pwd»B;' ,
select *, fn_estado(id) from tabla1')

Lo de que "Todos los objetos a los que hace referencia la función deben
encontrarse en
la misma base de datos que la función" vale solamente cuando se quiere
enlazar la función al esquema.
Una función puede referenciar a objetos en otras bases de datos e incluso


en
otros Servidores.
Me pareció importante aclararlo.
Salu2
Manuel


"Javier Loria" escribió en el mensaje
news:
> Hola:
> Lo que dice la documentacion es:
> ==> > Todos los objetos a los que hace referencia la función deben encontrarse
> en la misma base de datos que la función. Se debe hacer referencia a los
> objetos mediante nombres de una o dos partes.
> ==> > Para evitar la limitacion podrias crear una vista local que apunta a


la
> tabla remota. Esto de por si es una buena practica para poder facilitar


el
> mantenimiento del sistema.
> Saludos,
>
> Javier Loria
> Costa Rica (MVP)
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
>
> "etragu" <Nando> wrote in message
> news:
>> exacto maxi, pero no anda
>>
>> desde el servery ejecuto
>>
>> select serverx.ips.dbo.fn_afiestado(datperid)
>> from serverx.ips.dbo.datospersonales
>>
>> y el resultado es
>>
>> Servidor: mensaje 117, nivel 15, estado 1, línea 1
>> El nombre objeto 'serverx.ips.dbo.' contiene demasiados prefijos. El
>> máximo
>> es 2.
>>
>> sin embardo desde serverx la consulta anda bien
>>
>> gracias
>>
>>
>>
>> "Maxi" escribió en el mensaje
>> news:
>>> Hola, la sintaxis es
>>>
>>> servidor.bdd.owner.objeto
>>>
>>>








-
>>> Microsoft M.V.P en SQLServer
>>> SQLTotal Consulting - Servicios en SQLServer
>>> Email:

>>> "etragu" <Nando> escribió en el mensaje
>>> news:
>>> > pero no me anda!!
>>> >
>>> > Servidor: mensaje 117, nivel 15, estado 1, línea 1
>>> > El nombre objeto 'server.tablas.dbo.' contiene demasiados prefijos.


El
>>> > máximo es 2.
>>> >
>>> >
>>> > "Maxi" escribió en el mensaje
>>> > news:
>>> >> Si
>>> >>
>>> >>
>>>

>>> >> Microsoft M.V.P en SQLServer
>>> >> SQLTotal Consulting - Servicios en SQLServer
>>> >> Email:
>>>
>>> >> "etragu" <Nando> escribió en el mensaje
>>> >> news:
>>> >> > buenas
>>> >> > se puede hacer referencia a una funcion externa de un servidor
>>> > vincularo?
>>> >> >
>>> >> > ejemplo, en el servidor local anda esto
>>> >> > select *, fn_estado(id) from tabla1
>>> >> >
>>> >> > se puede hacer
>>> >> > select *, serverx.basedatos.dbo.fn_estado(id) from
>>> >> > serverx.basedatos.dbo.tabla1
>>> >> >
>>> >> >
>>> >> > gracias
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >
>>> >
>>>
>>>
>>
>>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida