• Jueves 16 de Mayo de 2024, 20:33

Autor Tema:  Funcion Como Formula De Un Campo  (Leído 1516 veces)

insomnio

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Funcion Como Formula De Un Campo
« en: Jueves 25 de Agosto de 2005, 16:47 »
0
Buenas,

Utilizo el Microsoft SQL Server, pues bien, he ido al apartado de hacer funciones(ahora no me acuerdo como se llama) y he creado una con el objetivo de que modifique el campo de otra tabla, me explico, en una tabla X tengo un campo que se llama numero(es un int), pues bien este depende de una tabla Y , es decir, cada vez que se cree un nuevo registro en esa tabla Y el campo numero de la tabla X deberá incrementarse o si se elimina un registro deberá decrementarse.(por lo que la consulta la he hecho con un simple SELECT COUNT)

Pues bien, la consulta se llama control_val, y aparece en el apartado de funciones del sql como dbo.control_val(ya que el dbo es usuario general) y el examinador dice que esta correcta.

Entonces me voy a la tabla X(donde tengo el campo numero) y me voy a la opcion "formula" y alli pongo:
=control_val(Id), este Id es el campo primario de la tabla y es el que recibe la consulta, pero me da error, y tb lo he probado como:

=control_val(NombreTabla.NombreCampo), y tampoco alguna idea?¿

GRACIAS

insomnio

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Funcion Como Formula De Un Campo
« Respuesta #1 en: Viernes 26 de Agosto de 2005, 08:13 »
0
Buenas de nuevo,

La funcion en concreto tiene la estructura:

CREATE FUNCTION dbo.[encontrar_valv] (@ic int)  
RETURNS int AS  
BEGIN
RETURN (SELECT COUNT (IdNodo) FROM Nodos WHERE IdEC= @ic)
END

mateamargo

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Funcion Como Formula De Un Campo
« Respuesta #2 en: Martes 20 de Septiembre de 2005, 22:07 »
0
Tenés que escribir el nombre del owner adelante de la función, en este caso DBO.
Por lo que quedaría:

dbo.control_val(id)

Nunca usé funciones definidas por mi dentro de un campo, solamente para hacer stored procedures y vistas, probá con eso que te dije a ver si se puede.

Saludos.