sábado, 22 de agosto de 2015

Programación T SQL para llenar o actualizar una tabla

Me vi en la necesidad de agregar todos los productos en  todos los almacenes para poder realizar mis pruebas del  sistema de administración. Programé el siguiente método. que tardó 13 segundos  la primera vez y 7 la segunda vez (cuando ya existían todas las filas)
Lo que hace es buscar por cada producto (5520)  si  éste maneja inventario y si  es así agrega  a cada almacén (23 en total) la cantidad de 500 productos en  existencia.

DECLARE @idProducto char(5)='1';
DECLARE @idAlmacen char(2)='1';
DECLARE @inventario bit;

BEGIN TRY
WHILE  CAST(@idProducto as int)<5520
BEGIN
WHILE  CAST(@idAlmacen as int)<=23
BEGIN
Select @inventario=CAST((Select Inventario from AdmProductos where idProducto=@idProducto) as bit)   
if @inventario=1
BEGIN
IF EXISTS (Select * from AdmProductosAlmacenes where idAlmacen=@idAlmacen AND idProducto=@idProducto)
Update AdmProductosAlmacenes set Entradas=0,Salidas=0,Existencia=500 where idAlmacen=@idAlmacen AND idProducto=@idProducto
        ELSE
Insert into AdmProductosAlmacenes values (@idProducto,@idAlmacen,0,0,0,0,500);
END
else 
print('el producto #'+@idProducto+' no maneja inventario');
select @idAlmacen=(CAST(@idAlmacen as int)+1)

END
   set @idAlmacen='1';
   select @idProducto=(CAST(@idProducto as int)+1)
   print('Producto #'+@idProducto);
END
END TRY
BEGIN CATCH
     print(ERROR_MESSAGE());
END CATCH

No hay comentarios.:

Publicar un comentario