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

trigger de insertar

Estas en el tema de trigger de insertar en el foro de Bases de Datos General en Foros del Web. Buenas he hecho un trigger para insertar el identificador de una tabla en otra, no me da error pero el identificador cuando lo inserta en ...
  #1 (permalink)  
Antiguo 16/09/2005, 02:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
trigger de insertar

Buenas he hecho un trigger para insertar el identificador de una tabla en otra, no me da error pero el identificador cuando lo inserta en la otra tabla me lo pone como 0, y no lo entiendo ya que le paso como valor el @id

CREATE TRIGGER incrementar4 ON dbo.IRIS_ECS
AFTER INSERT
AS
begin
Declare @id int
select @id=ID_EC from inserted
update IRIS_ECS SET ID_EC=dbo.IdECS() WHERE ID_EC=@id
insert IRIS_COMUNICACIONES Values (@id,0,0,0,0,0,0,300,0,0)
end

Otra posibilidad q habia penado pero no me acaba de convencer es:


CREATE TRIGGER incrementar4 ON dbo.IRIS_ECS
AFTER INSERT
AS
begin
Declare @id int
select @id=ID_EC from inserted
update IRIS_ECS SET ID_EC=dbo.IdECS() WHERE ID_EC=@id
insert IRIS_COMUNICACIONES Values (0,0,0,0,0,0,0,300,0,0)
update IRIS_COMUNICACIONES SET ID_EC=@id WHERE ID_EC=0
end

GRACIAS

Última edición por kakarot; 16/09/2005 a las 04:44
  #2 (permalink)  
Antiguo 16/09/2005, 04:51
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 8 meses
Puntos: 1
en la parte del insert especifica la columna en la que vas a insertar, es decir,

insert iris_comunicaciones (id_ec,col1,col2,col3, ...,coln) values (@id,0,0,0,....,0)

asi te aseguras de que lo estás insertando en la columna correcta, es lo que se me ocurre
  #3 (permalink)  
Antiguo 17/09/2005, 02:43
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Xaquin gracias por la respuesta pero eso ya lo hice y tampoco me funcionaba, es decir me lo dejaba tb a 0, por lo q para ponerlo aqui me fue mas corto no poner el nombre de las columnas

Lo q no entiendo es pq no funciona....
  #4 (permalink)  
Antiguo 18/09/2005, 13:50
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
veamos, en la tabla madre te inserta el ID automaticamente no?
Utilizas storeds?
__________________
Un saludo,
Trucos
Videos
  #5 (permalink)  
Antiguo 19/09/2005, 00:16
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Pues no, el ID lo inserto tb con un trigger por motivos de programacion, ya que así me respeta un orden concreto q he establecido.
Y los storeds no se q son
  #6 (permalink)  
Antiguo 19/09/2005, 01:55
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias a los dos, ya lo he solucionado supongo q el error seria el pasarle el @id from inserted, ya aun no estaba isnertada, el trigger es:

CREATE TRIGGER incrementar4 ON dbo.IRIS_ECS
AFTER INSERT
AS
begin
Declare @id int
Declare @vel int
Declare @ident int
select @vel=(SELECT MIN (ID_VELOCIDAD) FROM IRIS_VELOCIDADES )
select @id=ID_EC from inserted
select @ident=dbo.IdECS()
update IRIS_ECS SET ID_EC=dbo.IdECS() WHERE ID_EC=@id
insert IRIS_COMUNICACIONES Values (@ident,0,0,0,0,0,0,@vel,0,0)
end

Saludos
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 11:34.