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

problema trigg de concatenacion

Estas en el tema de problema trigg de concatenacion en el foro de SQL Server en Foros del Web. hola! alguien podria ayudarme por favor.. tengo el siguiente trigg para concatenar el nombre separado en columnas en una sola.. pero al momento de ejecutarlo ...
  #1 (permalink)  
Antiguo 19/11/2006, 11:32
Avatar de Claudiss  
Fecha de Ingreso: septiembre-2006
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Sonrisa problema trigg de concatenacion

hola!
alguien podria ayudarme por favor.. tengo el siguiente trigg para concatenar el nombre separado en columnas en una sola.. pero al momento de ejecutarlo me corta los nombres y no los almacena como deberian ser por eje..
tengo a francisco javier meza peña y a juan carlos mercado, al insertarlos por separado el primero se concatena correctamente, pero al insertar el siguiente me borra la concatenacion anterior y los concatena nuevamente al igual que el ultimo solo los tres campos de la ultima insercion
queda asi:
francisco javier meza
juan carlos mercado


este es mi trigg
---
ALTER TRIGGER concatena_nombre_INSERT ON prueba FOR INSERT
AS

DECLARE @nombre1 nvarchar(50),
@nombre2 nvarchar(50),
@apellido1 nvarchar(50),
@apellido2 nvarchar(50)

SELECT @nombre1=b.nombre1, @nombre2=b.nombre2,
@apellido1=b.apellido1, @apellido2=b.apellido2

FROM prueba b inner join inserted i on b.codpersona= i.codpersona
and b.nombre1 =i.nombre1 OR b.nombre2= i.nombre2 OR
b.apellido1 =i.apellido1 OR b.apellido2 = i.apellido2
IF (@nombre1 is not null and @nombre2 is not null
and @apellido1 is not null and @apellido2 is not null)
BEGIN
UPDATE prueba set
nombre =(nombre1 + ' '+ nombre2 + ' '+ apellido1+ ' '+apellido2)
(SELECT I.NOMBRE1, I.NOMBRE2, I.APELLIDO1, I.APELLIDO2
FROM INSERTED I)
END
ELSE
IF (@nombre1 is not null AND @NOMBRE2 IS NOT NULL
and @apellido1 is not null and @apellido2 is null)
BEGIN
UPDATE prueba set
nombre =(nombre1+ ' '+ NOMBRE2+ ' '+apellido1 )
(SELECT I.NOMBRE1, I.NOMBRE2, I.APELLIDO1 FROM INSERTED I
WHERE I.APELLIDO2 IS NULL)
END
ELSE
IF (@nombre1 is not null and @NOMBRE2 IS NOT NULL
AND @apellido1 is not null AND @APELLIDO2 IS NOT NULL)
BEGIN
UPDATE prueba set
nombre =(nombre1+ ' '+ APELLIDO1+ ' '+ apellido2)
(SELECT I.NOMBRE1, I.APELLIDO1, I.APELLIDO2 FROM INSERTED I)
END
ELSE
IF (@nombre1 is not null and @NOMBRE2 IS NULL AND
@apellido1 is not null AND @APELLIDO2 IS NULL )
BEGIN
UPDATE prueba set nombre =(nombre1 + ' '+ apellido1)
(SELECT I.NOMBRE1, I.APELLIDO1 FROM INSERTED I)
END
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 18:55.