Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Qué Me falta al Definir y usar Función

Estas en el tema de Qué Me falta al Definir y usar Función en el foro de SQL Server en Foros del Web. Mi problema es que defino una función en SQL Server de la siguiente Forma: CREATE FUNCTION CantidadTr() RETURNS int AS BEGIN Declare @C as int ...
  #1 (permalink)  
Antiguo 07/11/2011, 09:36
 
Fecha de Ingreso: agosto-2005
Ubicación: Cienfuegos, Cuba
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
Qué Me falta al Definir y usar Función

Mi problema es que defino una función en SQL Server de la siguiente Forma:

CREATE FUNCTION CantidadTr()
RETURNS int AS
BEGIN
Declare @C as int
set @c=(SELECT Count(Cobro) FROM ftPersonas)
return @c
END

Pero al invocar a ella desde el analizador de consulta, lo hago así.

SELECT * FROM CantidadTr()

Y siempre me reporta el siguiente error:

Servidor: mensaje 208, nivel 16, estado 3, línea 1
El nombre de objeto 'cantidadTr' no es válido.

Alguien podría decirme qué me falta? o qué estoy haciendo mal?

Gracias

Última edición por ElierLora; 07/11/2011 a las 09:41
  #2 (permalink)  
Antiguo 07/11/2011, 09:54
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Qué Me falta al Definir y usar Función

Hola ElierLora:

Las funciones escalares (que te regresan un valor) NO SE PUEDEN UTILIZAR EN EL FROM, sin que deben incluirse en el SELECT. Las funciones de tabla (que te regresan un conjunto de valores) sí pueden usarse en el FROM. en tu caso para usar la función deberías hacerlo así;

Código:
SELECT  CantidadTr()
Saludos
Leo
  #3 (permalink)  
Antiguo 07/11/2011, 10:02
 
Fecha de Ingreso: agosto-2005
Ubicación: Cienfuegos, Cuba
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Qué Me falta al Definir y usar Función

Olvidé decir que también lo he hecho así, solo que entonces el error es como sigue:

Servidor: mensaje 195, nivel 15, estado 10, línea 1
'cantidadTr' no es un nombre de función reconocido.

Gracias Leo por Responder
  #4 (permalink)  
Antiguo 08/11/2011, 09:13
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Qué Me falta al Definir y usar Función

Hola de nuevo ElierLora:

El error que te marca es que la función no existe... aunque en el código no veo ningún error, si al momento de que ejecutaste la función no te marcó un error el problema puede estar con el esquema o propietario de la función. Revisa con el Managment estudio la carpeta
PROGRAMACION -> FUNCIONES -> FUNCIONES DE VALOR ESCALAR y revisa quién es el propietario de la función... es posible que para ejecutar la función tengas que especificar también el esquema o propietario:

Código:
SELECT  dbo.CantidadTr()

o 

SELECT  otro_propietario.CantidadTr()

Saludos
Leo.
  #5 (permalink)  
Antiguo 09/11/2011, 13:35
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Qué Me falta al Definir y usar Función

Aunque a decir verdad, como funcion, no le veo mucha logica en regresar un simple count de registros.
__________________
MCTS Isaias Islas

Etiquetas: definir, falta, select, server, sql, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:18.