求解:SQL存储过程题

来源:百度知道 编辑:UC知道 时间:2024/06/04 00:40:39
题目如下:
*存储过程名称: uspCreateBillDispense
*功能描述: 增加票据分发信息
*输入参数:
@billType VARCHAR(50), --票据类型
@billStartCode VARCHAR(50), --票据开始号
@billEndCode VARCHAR(50), --票据结束号
@receiveBillPerson VARCHAR(50), --领票人
@acceptStation VARCHAR(50), --接货点
@receiveBillTime DATETIME, --领票时间
@releasePerson VARCHAR(50), --分发人

*输出参数:
@PKID INT OUTPUT --票据ID
*返回值:
0 - 成功
<> 0 - 失败
*结果集: 无
*涉及到的表:1.票据分发表:BillMgt_BillDispense
*操作说明:向票据分发表中插入一条新纪录
1.字段值 = 相应输入参数值(票据开始号和票据结束号除外)
2.票据开始号 = dbo.funGenerateBillCode(@billType,@billStartCode,@receiveBillTime)
3.票据结束号 =
dbo.funGenerateBillCode(@billType,@billEndCode,@receiveBillTime)

附加说明:票据开始号和票据结束号在以后其他方法调用时将对其进行查找,以防止插入重复的开始号和结束号。当新插入的开始号和结束号均不重复的情况下将成功返回刚插入的票据的PKID(输出参数)。

小弟实在不才,对于存储过程只会写基本的增删改查,望各位给出此题详解~~
参考图片如下:
SQL Server

create procedure uspCreateBillDispense(
@billType VARCHAR(50), --票据类型
@billStartCode VARCHAR(50), --票据开始号
@billEndCode VARCHAR(50), --票据结束号
@receiveBillPerson VARCHAR(50), --领票人
@acceptStation VARCHAR(50), --接货点
@receiveBillTime DATETIME, --领票时间
@releasePerson VARCHAR(50), --分发人
@PKID INT OUTPUT --票据ID
)
as
begin tran --加事务控制
insert into BillMgt_BillDispense(
,billType
,billStartCode
,billEndCode
,receiveBillPerson
,acceptStation
,receiveBillTime
,releasePerson
)
values(@billType
,dbo.funGenerateBillCode(@billType,@billStartCode,@receiveBillTime) --函数直接用
,dbo.funGenerateBillCode(@billType,@billEndCode,@receiveBillTime) --函数直接用
,@receiveBillPerson <