Tema: Triggers
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/08/2005, 05:38
xaquin
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 22 años, 5 meses
Puntos: 1
como dijo Jack el Destripador vayamos por partes, tu idea es poner en un campo el máximo valor de ese campo + 1 a la hora de insertarlo no?para ello haces una función inc_nodos que te obtendría el máximo valor de ese campo y después quieres hacer un trigger que al insertar el registro te actualice ese valor, creo que mezclando las dos cosas que has hecho obtendrías lo que quieres, quedaría algo así

Código:
CREATE TRIGGER incrementar ON dbo.Nodos 
AFTER INSERT 
AS
begin
Declare @id int
select @id=IdEC From inserted
update NodoEC SET NodoEC=dbo.inc_nodos(id) FROM Nodos WHERE IdEC=@id
end
Otra cosa, el campo IdEC es un identificador único de la tabla? porque si es así la función dbo.inc_nodos no está bien y debería ser algo así

Código:
CREATE FUNCTION dbo.[inc_nodos] ) 
RETURNS int AS 
BEGIN 
RETURN (SELECT MAX (NodoEC) FROM Nodos)
END
ya que de la otra manera estás obteniendo el valor del campo con id igual a la variable que le pases, pero no necesariamente el máximo de la tabla

prueba eso y me comentas qué tal te fue