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