USEGEAR

导航

SQLServer中事务处理

--将当前库存记录insert医废转移单中
--declare @Warehouse nvarchar(100);

declare @Warehouse_JJRID nvarchar(100);
declare @Warehouse_JJRName nvarchar(100);

declare @ZYGS_ID Nvarchar(100);--转运公司ID
declare @ZYGS_Name NVarchar(100);
declare @ZYGS_JSRID Nvarchar(100);

declare @ZDR_ID Nvarchar(20);
declare @ZDR_Name Nvarchar(20);

--select @Warehouse={&WarehouseID};--'仓库ID'
select @Warehouse_JJRID={&Warehouse_JJRID};--'仓库保管的ID'
select @Warehouse_JJRName={&Warehouse_JJRName};--'仓库保管姓名'

select @ZYGS_ID={&ZYGS_ID};--处置公司ID
--select @ZYGS_Name={&ZYGS_Name};--处置公司名称
select @ZYGS_JSRID={&ZYGS_JSRID};--处置公司处置人ID

select @ZDR_ID={&ZDR_ID};--制单人ID
select @ZDR_Name={&ZDR_Name};--制单人姓名

declare @error int; 
select @error=0; 
BEGIN TRANSACTION 

--get符合条件的库存记录

insert into MedicalWastesDelivery
(
MWC_ID,
MWC_Code,--医疗袋标识码BagID 18位
MWD_ThisBarcode,
MWC_Date,
WT_Code,
WT_Name,
MWD_ZYBMCode,--转运公司ID
MWD_ZYBMName,--转运公司名称
MWD_ZYBMJSR,--转运接收人
MWD_weight,
emp_ID,--制单人ID
MWD_ZDR,--制单人name
WWH_Code,
MWD_JJR,
MWD_JJRName,
MWD_CKdate --出库操作时间
)
select 
(replace(newid(), '-', '')),
b.MWC_Code,--'医疗袋标识码BagID 18位',
MWS_ThisBarcode,
getdate(),
a.WT_Code,
a.WT_Name, 
@ZYGS_ID,
@ZYGS_Name,
@ZYGS_JSRID,
weight,
@ZDR_ID,
@ZDR_Name,
a.WWH_CODE,
@Warehouse_JJRID,
@Warehouse_JJRName,
getdate()
from MedicalWastesStock a
left join MedicalWastesCollection  b on a.MWS_ThisBarcode=b.MWC_Barcode
where isnull(a.MWS_CKDate,0)=0 and  ({&Warehouse});

select @error =@error + @@error; 
update MedicalWastesStock  set MWS_CKDate=getdate() -- 仓库出库日期; 
    where  ({&Warehouse1}) and  --选择的没有出库的库存记录 
            isnull(MWS_CKDate,0)=0;

select @error =@error + @@error; 
if @error <>0 
begin 
  ROLLBACK TRANSACTION; 
  Return; 
end 
else
begin 
  COMMIT TRANSACTION; 
end;

 

posted on 2021-04-20 17:21  USEGEAR  阅读(82)  评论(0编辑  收藏  举报