¿Cómo ejecutar una función de usuario?

21/03/2006 - 09:35 por XTV | Informe spam
Hola a todos; tengo una pequeña gran duda;

he creado un función muy sencilla pero no sé cómo invocarla en una query;
según los BOL esto es:

SELECT * FROM dbo.fnSystemUser()

Pero me da error: "El nombre del objeto dbo.fnSystemUser no es valido", y no
importa que lo escriba de una u otra forma, me da el mismo error. Además he
probado a poner el contenido de la función dendro de la consulta y funciona
correctamente.

¿Dónde esta el error?

Muchas gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
21/03/2006 - 09:46 | Informe spam
¿El propietario de esa función es dbo o es otro?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"XTV" escribió en el mensaje
news:
Hola a todos; tengo una pequeña gran duda;

he creado un función muy sencilla pero no sé cómo invocarla en una


query;
según los BOL esto es:

SELECT * FROM dbo.fnSystemUser()

Pero me da error: "El nombre del objeto dbo.fnSystemUser no es valido", y


no
importa que lo escriba de una u otra forma, me da el mismo error. Además


he
probado a poner el contenido de la función dendro de la consulta y


funciona
correctamente.

¿Dónde esta el error?

Muchas gracias por su ayuda


Respuesta Responder a este mensaje
#2 XTV
21/03/2006 - 09:54 | Informe spam
Sí, es el dbo. He probado a quitarlo de la SQL, a dar acceso a todos los
usuario, etc pero nada, me da siempre el mismo error


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
¿El propietario de esa función es dbo o es otro?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"XTV" escribió en el mensaje
news:
Hola a todos; tengo una pequeña gran duda;

he creado un función muy sencilla pero no sé cómo invocarla en una


query;
según los BOL esto es:

SELECT * FROM dbo.fnSystemUser()

Pero me da error: "El nombre del objeto dbo.fnSystemUser no es valido", y


no
importa que lo escriba de una u otra forma, me da el mismo error. Además


he
probado a poner el contenido de la función dendro de la consulta y


funciona
correctamente.

¿Dónde esta el error?

Muchas gracias por su ayuda






Respuesta Responder a este mensaje
#3 Carlos Sacristán
21/03/2006 - 09:58 | Informe spam
¿Puedes postear el script de esa función?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"XTV" escribió en el mensaje
news:
Sí, es el dbo. He probado a quitarlo de la SQL, a dar acceso a todos los
usuario, etc pero nada, me da siempre el mismo error


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
> ¿El propietario de esa función es dbo o es otro?
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "XTV" escribió en el mensaje
> news:
>> Hola a todos; tengo una pequeña gran duda;
>>
>> he creado un función muy sencilla pero no sé cómo invocarla en una
> query;
>> según los BOL esto es:
>>
>> SELECT * FROM dbo.fnSystemUser()
>>
>> Pero me da error: "El nombre del objeto dbo.fnSystemUser no es valido",


y
> no
>> importa que lo escriba de una u otra forma, me da el mismo error.


Además
> he
>> probado a poner el contenido de la función dendro de la consulta y
> funciona
>> correctamente.
>>
>> ¿Dónde esta el error?
>>
>> Muchas gracias por su ayuda
>>
>>
>
>


Respuesta Responder a este mensaje
#4 XTV
21/03/2006 - 10:19 | Informe spam
CREATE FUNCTION dbo.fnSystemUser()
RETURNS nvarchar(50)
AS
BEGIN
RETURN
SUBSTRING(SYSTEM_USER,CHARINDEX(N'\',SYSTEM_USER)+1,LEN(SYSTEM_USER)-(CHARINDEX(N'\',SYSTEM_USER)))
END

Aprovecho para algo más:

Lo estoy probando a ejecutar en vez de en una query atraves de un trigger, y
ahi si que funciona. ¡Que raro, no!



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
¿Puedes postear el script de esa función?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"XTV" escribió en el mensaje
news:
Sí, es el dbo. He probado a quitarlo de la SQL, a dar acceso a todos los
usuario, etc pero nada, me da siempre el mismo error


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
> ¿El propietario de esa función es dbo o es otro?
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "XTV" escribió en el mensaje
> news:
>> Hola a todos; tengo una pequeña gran duda;
>>
>> he creado un función muy sencilla pero no sé cómo invocarla en una
> query;
>> según los BOL esto es:
>>
>> SELECT * FROM dbo.fnSystemUser()
>>
>> Pero me da error: "El nombre del objeto dbo.fnSystemUser no es
>> valido",


y
> no
>> importa que lo escriba de una u otra forma, me da el mismo error.


Además
> he
>> probado a poner el contenido de la función dendro de la consulta y
> funciona
>> correctamente.
>>
>> ¿Dónde esta el error?
>>
>> Muchas gracias por su ayuda
>>
>>
>
>






Respuesta Responder a este mensaje
#5 Carlos Sacristán
21/03/2006 - 11:06 | Informe spam
Es que es una función escalar, no de tabla, así que la forma de llamarla
es

SELECT dbo.fnSystemUser() AS nombreCampo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"XTV" escribió en el mensaje
news:

CREATE FUNCTION dbo.fnSystemUser()
RETURNS nvarchar(50)
AS
BEGIN
RETURN



SUBSTRING(SYSTEM_USER,CHARINDEX(N'\',SYSTEM_USER)+1,LEN(SYSTEM_USER)-(CHARIN
DEX(N'\',SYSTEM_USER)))
END

Aprovecho para algo más:

Lo estoy probando a ejecutar en vez de en una query atraves de un trigger,


y
ahi si que funciona. ¡Que raro, no!



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
> ¿Puedes postear el script de esa función?
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "XTV" escribió en el mensaje
> news:
>> Sí, es el dbo. He probado a quitarlo de la SQL, a dar acceso a todos


los
>> usuario, etc pero nada, me da siempre el mismo error
>>
>>
>> "Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el


mensaje
>> news:%
>> > ¿El propietario de esa función es dbo o es otro?
>> >
>> >
>> > Un saludo
>> >
>> > -
>> > "Sólo sé que no sé nada. " (Sócrates)
>> >
>> > "XTV" escribió en el mensaje
>> > news:
>> >> Hola a todos; tengo una pequeña gran duda;
>> >>
>> >> he creado un función muy sencilla pero no sé cómo invocarla en


una
>> > query;
>> >> según los BOL esto es:
>> >>
>> >> SELECT * FROM dbo.fnSystemUser()
>> >>
>> >> Pero me da error: "El nombre del objeto dbo.fnSystemUser no es
>> >> valido",
> y
>> > no
>> >> importa que lo escriba de una u otra forma, me da el mismo error.
> Además
>> > he
>> >> probado a poner el contenido de la función dendro de la consulta y
>> > funciona
>> >> correctamente.
>> >>
>> >> ¿Dónde esta el error?
>> >>
>> >> Muchas gracias por su ayuda
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida