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