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
分享到:
相关推荐
1. **SQL Server查询分析器**:这是微软提供的一个工具,允许开发者和DBA(数据库管理员)直接与SQL Server交互,执行查询、查看结果、调试存储过程等。它提供了图形化界面,使得用户可以方便地编写、测试和优化SQL...
- 存储过程助手工具通常扩展了查看器的功能,可能包括创建、编辑、执行、优化和分析存储过程。它也可能有调试功能,如设置断点、查看变量值、跟踪执行步骤等,这对于复杂存储过程的开发和维护至关重要。 5. **使用...
12. **性能监控与分析**:通过SQL Server Profiler或查询分析器,可以监控存储过程的执行时间、资源消耗,以便进行性能优化。 了解并熟练掌握这些知识点,能帮助你在SQL Server 2000环境中高效地编写和使用存储过程...
使用SQL Server存储过程生成器可以极大地简化存储过程的创建过程,减少手动编写和调试的工作量,特别是在大型项目中,这样的工具能显著提升开发效率和代码质量。然而,值得注意的是,尽管工具可以自动化许多任务,...
此外,该管理器可能还支持其他高级功能,如导出导入存储过程(备份和恢复)、执行权限管理、性能分析等。这些特性有助于开发者更好地组织和管理存储过程,确保数据库系统的稳定性和性能。 在提供的压缩文件"新版本...
在数据库管理领域,存储过程(Stored Procedure)是预编译的SQL语句集合,它可以包含一系列的SQL操作,包括查询、插入、更新和删除数据,甚至可以包含事务处理和控制流语句。存储过程的使用极大地提高了数据库操作的...
在实际的编译过程中,词法分析器通常会产生一个Token流,这个Token流接着会被语法分析器处理,构建出抽象语法树(Abstract Syntax Tree, AST),最终生成目标代码。词法分析器的正确性和效率直接影响到整个编译过程...
存储过程代码生成器是一种工具,它能够自动化地创建数据库中的存储过程代码,极大地提高了开发人员的效率。在数据库管理系统(DBMS)中,存储过程是一组预编译的SQL语句,可以作为一个单一的单元执行,常用于处理...
在本实验报告中,我们将探讨如何设计一个计算器的词法分析器,该分析器的目标是识别并处理输入的数字、运算符以及字母变量。词法分析器是编译器或解释器的第一步,它将源代码分解成一系列有意义的单元,称为标记...
在C#词法分析器的设计过程中,首先,我们需要定义一系列的规则来识别源程序中的不同元素,如标识符、保留字、整型常数、浮点型常数、字符串、字符、符号等。这些规则通常通过状态转移图来表示,状态转移图描述了词法...
此外,方法还处理了添加返回值参数的过程,确保能够正确地获取存储过程的返回值。 ##### 参数化查询 通过`SqlParameter[]`类型的参数传递到`CreateProcDataAdapter`方法中,可以方便地进行参数化查询。这种方式...
- 定义参数类型、名称、值以及数据提取器数组,用于存储过程调用时的数据处理。 - 使用循环遍历所有参数,设置参数类型、名称和值。对于输出参数(游标),定义其类型为`OracleTypes.CURSOR`,并设置为`null`...
- 预编译的特性使得存储过程在首次执行时由查询优化器分析、优化,并将执行计划存储在系统表中。 - 与需要每次预编译和优化的批处理相比,存储过程具有更快的执行速度。 **C. 减轻网络流量:** - 调用存储过程时...
在SQL Server查询分析器中,可以直接运行存储过程,或者使用`EXECUTE`语句来执行。要修改已有的存储过程,可以使用`ALTER PROCEDURE`命令。 存储过程的流程控制语言包括: - `GOTO`:跳转到指定标签的语句。 - `...
// 对于无返回值的存储过程 object singleValue = command.ExecuteScalar(); // 对于返回单个值的存储过程 SqlDataReader reader = command.ExecuteReader(); // 对于返回多行数据的结果集 ``` 6. **处理返回结果*...
4. 使用存储过程:调用存储过程,可以在查询分析器中执行,例如: ```sql EXEC StudInfo_PROCEDURE 1; ``` 5. 删除存储过程:使用`DROP PROCEDURE`语句可以删除不再需要的存储过程,例如: ```sql DROP PROCEDURE ...