Éste es un mensaje de varias partes en formato MIME.
=_NextPart_000_00EE_01C950B2.292FF7A0
format=flowed;
reply-type=original
Tengo un tirguer sobre una tabla articulo la cual cuando se actualiza se
dispara el triguer y va y cambia a otras bases de datos la
tabla articulo todo en el mismo servidor, cuando hago la actualizacion sobre
un registro lo hace bien, pero cuando hago una actualizacion masiva no lo
hace adjunto el
triguer, no se que pueda estar fallando espero alguien me pueda ayudar
Victor Montañez
Sistemas y Desarrollos Computacionales
(656) 616-84-84
=_NextPart_000_00EE_01C950B2.292FF7A0
format=flowed;
name="cambiarticulo.txt";
reply-type=original
filename="cambiarticulo.txt"
CREATE TRIGGER [CAMBIA_ARTICULO] ON [dbo].[Articulo]
FOR UPDATE
AS
DECLARE @Codigo char(10),
@Nivel tinyint,
@padre char(10),
@Tipo char(5),
@Afectable char(1),
@Descr char(80),
@Linea char(3),
@Inventa char(1),
@Porc_Desc decimal(12,2),
@Precio decimal(12,2),
@PrecioFecha datetime,
@CostoU decimal(12,2),
@CostoForaneo decimal(12,2),
@Precio_Ant decimal(12,2),
@FechaAnterior datetime,
@inv_ini int,
@Existencia int,
@Repara tinyint,
@Statusx char(1),
@Dama tinyint,
@Caballero tinyint,
@Unisex tinyint,
@Acetato tinyint,
@Metal tinyint,
@Titanio tinyint,
@Ppp tinyint,
@Solar tinyint,
@Polarizado tinyint,
@Flex tinyint,
@Seguridad tinyint,
@BajoMov tinyint,
@AceroInox tinyint,
@Activo tinyint,
@NoResurtir tinyint,
@AltoMov tinyint,
@BifPrg tinyint,
@LabExterno tinyint,
@ComparaGrad tinyint,
@Comentario varchar(100),
@Sql nVarchar(4000),
@Sucursal TinyInt,
@Sql2 NVarchar(1000),
@Cont int,
@preciook decimal(12,2),
@invok char(1)
Declare @Db sysname
SET @Sql=''
SELECT
@Codigo=Codigo,@Nivel=Nivel,@Padre=Padre,@Tipo=Tipo,@Descr=Descr,@Linea=Line
a,@Porc_Desc=Porc_Desc,
@Precio=Precio,@PrecioFecha=PrecioFecha,@CostoU=CostoU,@CostoForaneo=CostoF
oraneo,@Precio_Ant=Precio_Ant,
@FechaAnterior=FechaAnterior,@Inv_Ini=Inv_ini,@Existencia=Existencia,@Repar
a=Repara,@Statusx=Statusx,
@Dama=Dama,@Caballero=Caballero,@Unisex=Unisex,@Acetato=Acetato,@Metal=Meta
l,@Titanio=Titanio,@Ppp=Ppp,
@Solar=Solar,@Polarizado=Polarizado,@Flex=Flex,@Seguridad=Seguridad,@BajoMo
v=BajoMov,@AceroInox=AceroInox,
@Activo=Activo,@NoResurtir=NoResurtir,@AltoMov=AltoMov,@BifPrg=BifPrg,@Come
ntario=Comentario,@LabExterno=LabExterno,
@ComparaGrad=ComparaGrad,@Afectable=Afectable,@Inventa=Inventa from
INSERTED
set @preciook=@precio
set @invok=@Inventa
DECLARE Cursorx Cursor For Select ServidorEmp,Codigo from sucursales where
isnull(ServidorEmp,'') <>''
Open Cursorx
Fetch Next From Cursorx Into @Db,@Sucursal
While @@FETCH_STATUS = 0
Begin
Set @Cont=0
set @precio=@preciook--regresamos el precio normal
set @Inventa=@invok--regresamos el inventariable a su estado normal
If Exists(select * from exepcion where (codigo=@Codigo or
codigo=substring(@codigo,1,6)) and sucursal=@Sucursal)
Begin
Select @Precio=Precio from exepcion where (codigo=@Codigo or
codigo=substring(@codigo,1,6)) and sucursal=@Sucursal
End
If Exists(select * from excepinv where codigo=@Codigo and
sucursal=@Sucursal)
Begin
Select @Inventa=Iventariable from excepinv where codigo=@Codigo and
sucursal=@Sucursal
End
estamos posicionados
Set @Sql2 = N'Select @Cont=Count(*) From ' + quotename(Rtrim(Ltrim(@Db)))
+ N'.dbo.Articulo where Codigo = @Codigo'
exec sp_executesql @Sql2, N'@Cont int output, @Codigo char(10)', @Cont
output, @Codigo
If Isnull(@Cont,0)=0
Begin
Set @Sql = N'Insert Into '+
@DB+'.Dbo.articulo(Codigo,Nivel,Padre,Tipo,Descr,Linea,Porc_Desc,Precio,Prec
ioFecha,CostoU,CostoForaneo,Precio_Ant,FechaAnterior,Inv_ini,Existencia,Repa
ra,Statusx,Dama,Caballero,Unisex,Acetato,Metal,Titanio,Ppp,Solar,Polarizado,
Flex,Seguridad,BajoMov,AceroInox,Activo,NoResurtir,AltoMov,BifPrg,Comentario
,LabExterno,ComparaGrad,Afectable,Inventa)
Values(@Codigo,@Nivel,@Padre,@Tipo,@Descr,@Linea,@Porc_Desc,@Precio,@PrecioF
echa,@CostoU,@CostoForaneo,@Precio_Ant,@FechaAnterior,@Inv_Ini,@Existencia,@
Repara,@Statusx,@Dama,@Caballero,@Unisex,@Acetato,@Metal,@Titanio,@Ppp,@Sola
r,@Polarizado,@Flex,@Seguridad,@BajoMov,@AceroInox,@Activo,@NoResurtir,@Alto
Mov,@BifPrg,@Comentario,@LabExterno,@ComparaGrad,@Afectable,@inventa)'
EXEC sp_executesql @sql, N'@Codigo char(10),@Nivel tinyint,@Padre
char(10),@Tipo char(5),@Descr char(80),@Linea char(3),@Porc_Desc
decimal(12,2),@Precio decimal(12,2),@PrecioFecha datetime,@CostoU
decimal(12,2),@CostoForaneo decimal(12,2),@Precio_Ant
decimal(12,2),@FechaAnterior datetime,@inv_ini int,@Existencia int,@Repara
tinyint,@Statusx char(1),@Dama tinyint,@Caballero tinyint,@Unisex
tinyint,@Acetato tinyint,@Metal tinyint,@Titanio tinyint,@Ppp tinyint,@Solar
tinyint, @Polarizado tinyint,@Flex tinyint,@Seguridad tinyint,@BajoMov
tinyint,@AceroInox tinyint,@Activo tinyint,@NoResurtir tinyint,@AltoMov
tinyint,@BifPrg tinyint,@Comentario varchar(1000),@LabExterno
tinyint,@ComparaGrad tinyint,@Afectable char(10),@inventa
char(10)',@Codigo,@Nivel,@Padre,@Tipo,@Descr,@Linea,@Porc_Desc,@Precio,@Prec
ioFecha,@CostoU,@CostoForaneo,@Precio_Ant,@FechaAnterior,@inv_ini,@Existenci
a,@Repara,@Statusx,@Dama,@Caballero,@Unisex,@Acetato,@Metal,@Titanio,@Ppp,@S
olar,@Polarizado,@Flex,@Seguridad,@BajoMov,@AceroInox,@Activo,@NoResurtir,@A
ltoMov,@BifPrg,@Comentario,@LabExterno,@ComparaGrad,@Afectable,@inventa
end
ELSE
BEGIN
Set @Sql = N'UPDATE '+ @DB+'.Dbo.articulo SET
Codigo=@Codigo,Nivel=@Nivel,Padre=@Padre,Tipo=@Tipo,Descr=@Descr,Linea=@Line
a,Porc_Desc=@Porc_Desc,Precio=@Precio,PrecioFecha=@PrecioFecha,CostoU=@Costo
U,CostoForaneo=@CostoForaneo,Precio_Ant=@Precio_Ant,FechaAnterior=@FechaAnte
rior,Inv_ini=@Inv_ini,Repara=@Repara,Statusx=@Statusx,Dama=@Dama,Caballero=@
Caballero,Unisex=@Unisex,Acetato=@Acetato,Metal=@Metal,Titanio=@Titanio,Ppp=
@Ppp,Solar=@Solar,Polarizado=@Polarizado,Flex=@Flex,Seguridad=@Seguridad,Baj
oMov=@BajoMov,AceroInox=@AceroInox,Activo=@Activo,NoResurtir=@NoResurtir,Alt
oMov=@AltoMov,BifPrg=@BifPrg,Comentario=@Comentario,LabExterno=@LabExterno,C
omparaGrad=@ComparaGrad,Afectable=@Afectable,Inventa=@Inventa WHERE
CODIGO=@CODIGO'
EXEC sp_executesql @sql, N'@Codigo char(10),@Nivel tinyint,@Padre
char(10),@Tipo char(5),@Descr char(80),@Linea char(3),@Porc_Desc
decimal(12,2),@Precio decimal(12,2),@PrecioFecha datetime,@CostoU
decimal(12,2),@CostoForaneo decimal(12,2),@Precio_Ant
decimal(12,2),@FechaAnterior datetime,@inv_ini int,@Repara tinyint,@Statusx
char(1),@Dama tinyint,@Caballero tinyint,@Unisex tinyint,@Acetato
tinyint,@Metal tinyint,@Titanio tinyint,@Ppp tinyint,@Solar tinyint,
@Polarizado tinyint,@Flex tinyint,@Seguridad tinyint,@BajoMov
tinyint,@AceroInox tinyint,@Activo tinyint,@NoResurtir tinyint,@AltoMov
tinyint,@BifPrg tinyint,@Comentario varchar(1000),@LabExterno
tinyint,@ComparaGrad tinyint,@Afectable char(10),@inventa
char(10)',@Codigo,@Nivel,@Padre,@Tipo,@Descr,@Linea,@Porc_Desc,@Precio,@Prec
ioFecha,@CostoU,@CostoForaneo,@Precio_Ant,@FechaAnterior,@inv_ini,@Repara,@S
tatusx,@Dama,@Caballero,@Unisex,@Acetato,@Metal,@Titanio,@Ppp,@Solar,@Polari
zado,@Flex,@Seguridad,@BajoMov,@AceroInox,@Activo,@NoResurtir,@AltoMov,@BifP
rg,@Comentario,@LabExterno,@ComparaGrad,@Afectable,@inventa
END
Fetch Next From Cursorx Into @db,@Sucursal
End
Close Cursorx
Deallocate Cursorx
=_NextPart_000_00EE_01C950B2.292FF7A0--
Leer las respuestas