热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SqlServer存储过程

setANSI_NULLSONsetQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[Inser_Tare]@Carnonvarchar(50)



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


推荐阅读
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
wang小资_588
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有