use OC
if exists( select name from sysobjects where name='proc_dailyRecord_GetSerialNo' and type='P')
drop procedure proc_dailyRecord_GetSerialNo
GO
create procedure proc_dailyRecord_GetSerialNo
@caseType varchar(5),
@caseResult varchar(15)
as
declare
@serialNo int,
@inputDate datetime,
@count int
select @count=count(*) from serial_number
if @count=0
begin
insert into serial_number (BM_JT_DATE,BM_JT) values (getdate(),0)
end
if @caseType='BM'
if @caseResult='Complete'
begin
select @serialNo = BM_CO, @inputDate = BM_CO_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_CO=@serialNo+1,BM_CO_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_CO=1,BM_CO_DATE=getdate()
return 1
end
end
else if @caseResult='Joint Test'
begin
select @serialNo = BM_JT, @inputDate = BM_JT_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_JT=@serialNo+1,BM_JT_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_JT=1,BM_JT_DATE=getdate()
return 1
end
end
else if @caseResult='Re-Date'
begin
select @serialNo = BM_RD, @inputDate = BM_RD_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_RD=@serialNo+1,BM_RD_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_RD=1,BM_RD_DATE=getdate()
return 1
end
end
else if @caseResult='N/A'
begin
select @serialNo = BM_NA, @inputDate = BM_NA_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_NA=@serialNo+1,BM_NA_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_NA=1,BM_NA_DATE=getdate()
return 1
end
end
else if @caseResult='Notebook Test,Customer Accept'
begin
select @serialNo = BM_NBA, @inputDate = BM_NBA_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_NBA=@serialNo+1,BM_NBA_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_NBA=1,BM_NBA_DATE=getdate()
return 1
end
end
else if @caseResult='Notebook Test,Customer Not Accept'
begin
select @serialNo = BM_NBN, @inputDate = BM_NBN_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set BM_NBN=@serialNo+1,BM_NBN_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set BM_NBN=1,BM_NBN_DATE=getdate()
return 1
end
end
else
if @caseResult='Complete'
begin
select @serialNo = VM_CO, @inputDate = VM_CO_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set VM_CO=@serialNo+1,VM_CO_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set VM_CO=1,VM_CO_DATE=getdate()
return 1
end
end
else if @caseResult='Joint Test'
begin
select @serialNo = VM_JT, @inputDate = VM_JT_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set VM_JT=@serialNo+1,VM_JT_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set VM_JT=1,VM_JT_DATE=getdate()
return 1
end
end
else if @caseResult='Re-Date'
begin
select @serialNo = VM_RD, @inputDate = VM_RD_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set VM_RD=@serialNo+1,VM_RD_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set VM_RD=1,VM_RD_DATE=getdate()
return 1
end
end
else if @caseResult='N/A'
begin
select @serialNo = VM_NA, @inputDate = VM_NA_DATE from serial_number
if DATEDIFF(day,@inputDate,getdate())=0
begin
update serial_number set VM_NA=@serialNo+1,VM_NA_DATE=getdate()
return @serialNo+1
end
else
begin
update serial_number set VM_NA=1,VM_NA_DATE=getdate()
return 1
end
end
GO
在查询分析器显示该储存过程的返回值:
declare @result int
exec @result=proc_dailyRecord_GetSerialNo 'BM','Complete'
select @result
分享到:
相关推荐
因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T-SQL语句每次运行都需要预编译和优化,所以速度就要慢一些。 C、 存储过程...
查询优化器是在分析完存储过程之后将生成的执行计划存储在存储过程高速缓冲存储器中,此后每次调用已经创建的存储过程时将直接执行不再需要编译,这样就可以提高程序的运行性能。 执行阶段:指执行驻留在存储过程...
赋值有通常的存储语义:找到由v a r表示的变量的地址,然后由赋值符右边的子表达式进行求值,子表达式的值存储到给定的地址。这个值也作为整个表达式的值返回。v a r是简单的(整型)变量或下标数组变量。负的下标将...
4、在查询分析器中修改帐户时可以用系统存储过程Sp_modibaccess。( ) 5、每个存储过程向调用方返回一个整数返回代码。假如存储过程没有显式设置返回代码的值,则返回代码为 0,表示成功。 6、在 Transact-SQL ...
可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览数据、在对象...
对象浏览器——可配置的树形浏览能够显示同PL/SQL开发相关的全部信息,使用该浏览器可以获取对象描述、浏览对象定义、创建测试脚本以便调试、使能或禁止触发器或约束条件、重新编译不合法对象、查询或编辑表格、浏览...
第一步肯定是打上SQL SERVER最新的安全补丁....单从ASP,PHP等页面构造恶意语句的话,还有需要查看返回值的问题,总比 不上直接查询分析器来得利落。所以我们首先要做到即使让别人注入了,也不能让
实体不在被使用,会在不确定的时间内被垃圾回收器回收 方法区,本地方法区,寄存器 数组操作常见问题 数组脚标越界异常(ArrayIndexOutOfBoundsException) int[] arr = new int[2]; System.out....
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153...
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153...
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153...
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153...
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)...
4.5.2 在LL(1)分析程序中的错误校正 140 4.5.3 在TINY分析程序中的错误校正 141 练习 143 编程练习 146 注意与参考 148 第5章 自底向上的分析 150 5.1 自底向上分析概览 151 5.2 LR(0)项的有穷自动机与LR(0)分析 153...