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
调用
declare @back varchar(100)
exec dbo.Inser_Tare '123','123','123','123','123','123','123','123','123','123',@back output --传入@back的引用,在过程中为其赋值,这就是输出参数的作用
select @back rtn --查询显示并起别名
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