set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[Inser_Tare] @Carno nvarchar(50),--车号 @Proname nvarchar(50),--货物名称 @Unitfrom nvarchar(50),--销售公司 @Unitto nvarchar(50),--客户名称 @Transport nvarchar(50),--运输单位 @Model nvarchar(50),--订单号 @YLstr02 nvarchar(50),--联系电话 @YlStr04 nvarchar(50),--身份证号 @Taretime nvarchar(50),--添加时间 @YLFlt01 float,--预装量 @rtn int output AS BEGIN if exists(select * from T_Tare where F_Carno=@Carno) begin set @rtn=0 --有相同的数据,直接返回值 end else begin insert into T_Tare (F_Type,F_CarNo,F_Proname,F_Unitfrom,F_Unitto,F_Transport,F_Model,F_YLstr02,F_YLStr04,F_Taretime,F_YLFlt01) values('销售',@Carno,@Proname,@Unitfrom,@Unitto,@Transport,@Model,@Ylstr02,@Ylstr04,@taretime,@YLFlt01) set @rtn=1 --没有相同的数据,进行插入处理 end end
ALTER PROCEDURE [dbo].[Inser_Order] @trans_number nvarchar(50),--提货单编码 @status nvarchar(50),--提货单状态 @customer_name nvarchar(50),--客户名称。格式为:客户名+H或W或X后缀 @product_id int,--产品id @product_name nvarchar(50),--产品名称 @guanhao nvarchar(50),--罐号 @factory_code nvarchar(50),--厂区编码 @factory_name nvarchar(50),--厂区名称(目前万通只有南厂、北厂) @plate_number nvarchar(50),--车牌号 @pack_quantity nvarchar(50),--预装数量 @unit_price nvarchar(50),--产品当日挂牌价 @execution_price nvarchar(50),--执行价格 @contract_no nvarchar(50),--合同号 @contract_last_car nvarchar(50),--是否合同最后一车(是 、 否) @contract_price nvarchar(50),--是合同最后一车,则:传参合同价格 @contract_part_qty nvarchar(50),--是合同最后一车,则:传参预装合同量(合同量+零散量 = 预装数量) @scatter_part_qty nvarchar(50),--是合同最后一车,则:传参预装零散量(合同量+零散量 = 预装数量) @ret_code nvarchar(50) output, @ret_msg nvarchar(50) output AS BEGIN declare @optime nvarchar(20),@optime2 nvarchar(20),@stdno nvarchar(20),@stat int; select @optime=CONVERT (nvarchar(12),GETDATE(),120) declare @errors int --错误数 if @status='PRINTED' begin if exists(select * from T_SaleOrder where F_Billno=@trans_number) begin set @ret_code='#' --有相同的数据,直接返回值 set @ret_msg='提单号已存在!' end else begin begin tran insert into T_SaleOrder (F_BillNO,F_UnitTo,F_HeTongNO,F_Proname,F_ordername,F_orderprice,F_Qty,F_Price, F_opman,F_time,F_Edtman,F_edttime,F_isclosed,F_ischeck,F_isfinish,F_cmesg,F_guanhao,F_youhui,F_memo, F_istata,F_money,F_zmoney,F_ishetong,F_faccode,F_facname,F_islastcar,F_conprice,F_conqty,F_scaqty) values(@trans_number,@customer_name,'',@product_name,'',@unit_price,@pack_quantity,@execution_price, '外部导入',@optime,'','',0,1,0,'',@guanhao,0,'',0,0,0,0, @factory_code,@factory_name,@contract_last_car,@contract_price,@contract_part_qty,@scatter_part_qty) set @errors=@errors+@@error insert into T_Tare (F_Type,F_CarNo,F_Proname,F_Unitfrom,F_Unitto,F_Transport,F_Model,F_Unload,F_YLstr02,F_YLStr04,F_Taretime,F_YLFlt01) values('销售',@plate_number,@product_name,@factory_name,@customer_name,'',@trans_number,@guanhao,'','',@optime,@pack_quantity) set @errors=@errors+@@error -- 新增 开始 insert into T_Weight (F_Type,F_CarNo,F_Proname,F_Unitfrom,F_Unitto,F_Transport,F_Model,F_Unload,F_YLstr02,F_YLStr04,F_Taretime,F_YLFlt01) values('销售',@plate_number,@product_name,@factory_name,@customer_name,'',@trans_number,@guanhao,'','',@optime,@pack_quantity) set @ret_msg=@@IDENTITY set @errors=@errors+@@error -- 新增 结束 if (@errors<>0) begin rollback transaction set @ret_code='E' set @ret_msg='保存失败!' end else begin commit transaction set @ret_code='S' -- set @ret_msg='' --临时注掉 end end end else if @status='DELETED' begin select @stat= F_YLInt04 from T_Tare where F_Carno='@plate_number' if @stat<3 begin begin tran Delete From T_SaleOrder Where F_BillNO='@trans_number' set @errors=@errors+@@error Delete From T_Tare Where F_Carno='@plate_number' set @errors=@errors+@@error if (@errors<>0) begin rollback transaction set @ret_code='E' set @ret_msg='删除失败!' end else begin commit transaction set @ret_code='S' set @ret_msg='' end end else begin set @ret_code='E' set @ret_msg='已过磅,不能操作' end end END
触发器
Create Trigger s2w On dbo.T_Standard --T_Standard表中创建触发器 for Update --为什么事件触发 As --事件触发后所要做的事情 if Update(F_YLInt04) begin Update BorrowRecord Set StudentID=i.StudentID From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时表 Where br.StudentID=d.StudentID end