[计算机软件及应用]第13章存储过程和函数一.pptVIP

  • 2
  • 0
  • 约9.29千字
  • 约 37页
  • 2018-03-04 发布于浙江
  • 举报

[计算机软件及应用]第13章存储过程和函数一.ppt

[计算机软件及应用]第13章存储过程和函数一

IF OBJECT_ID(dbo.USP_TMe_OrderDetailsInfoAddTest,P) IS NOT NULL DROP PROC dbo.USP_TMe_OrderDetailsInfoAddTest; GO CREATE PROCEDURE dbo.USP_TMe_OrderDetailsInfoAddTest @BillCode varchar(30), --订单号 @MerchandiseID varchar(20), --商品编码 @UnitID tinyint, --单位编码 @Num int, --数量 @Price money --售价 AS DECLARE @ERROR int; IF (NOT @Num BETWEEN 0 AND 50) BEGIN RAISERROR (订购数量错误,请指定-之间的数,统计中断退出,16,1); RETURN; ---立即返回,退出存储过程 END 错误处理 引发系统错误,指定错误的严重级别16,调用状态为1(默认),并影响@@ERROR系统变量的值 使用RAISERROR 语句 如果存储过程存在,先删除 使用RAISERROR 语句 INSERT INTO dbo.TMe_OrderDetailsInfo([BillCode],[MerchandiseID],[UnitID],[Num],[Price]) VALUES(@BillCode,@MerchandiseID,@UnitID,@Num,@Price); SET @ERROR=@@ERROR; PRINT 订单明细插入成功!; IF(@ERROR0) RETURN -1; -- 存储过程的返回值,如果插入失败返回-1 ELSE RETURN 1 --插入成功,返回 GO -- 调用存储过程 DECLARE @Result int,@t int; EXEC @Result= dbo.USP_TMe_OrderDetailsInfoAddTest 20100928100001,100,1,100,24.3; SET @t = @@ERROR; PRINT 错误号: + CONVERT(VARCHAR(5),@t); IF @t 0 RETURN; -- 退出批处理,后续语句不再执行 IF @Result = 1 PRINT 订单明细插入成功!; ELSE PRINT 订单明细插入失败; GO 订购数量错误输入100 如果执行了RAISERROR语句,系统全局@@ERROR将不等于0,表示出现了错误 小结 * 总结 根据你的理解,什么是存储过程? 存储过程的参数的修饰关键字有哪些? 如何自定义存储过程中的错误信息? 如何在存储过程中返回数据? 上机作业 作业 将数据的增、删、改、查用存储过程实现 创建数据分页的存储过程 * 课余作业 作业 总结本堂课的知识点 完善上机练习,并将练习结果保存为.sql脚本提交。 * 课后预习 预习内容 用户定义函数的种类有哪些? 如何自定义标量UDF? 如何自定义内联UDF? 如何自定义多语句UDF ? * * * * * 重点讲解蓝色标识的系统存储过程。 * 提问:在企业管理器中能修改数据库的名称吗? 演示:在企业管理器中能修改数据库的名称,结果修改不了。怎么办呢? 吸引学员,然后演示“示例1:常用的系统存储过程.sql”,逐行执行各条T-SQL语句。 在查询分析器中调用sp_renamedb系统存储过程修改数据库非常实用。 说明:执行时,需要单用户访问,最简单的办法就是执行SQL语句时关掉企业管理器。 * 提示学员注意: SQL Server 2005 中引入的 xp_cmdshell 选项是服务器配置选项,安装的时候,xp_cmdshell 是被禁用的。使系统管理员能够控制是否可以在系统上执行 xp_cmdshell 扩展存储过程。 但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它, 如下面的代码示例所示: -- To allow advanced options to be changed. EXEC sp_configure show advanced options, 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure xp_cmdshell, 1 GO -- To update the currently configured value for thi

文档评论(0)

1亿VIP精品文档

相关文档