存储过程触发器-1.pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
存储过程触发器-1

批处理和事务(补充) 批处理:批处理是把一组SQL语句,作为一个整体提交该数据库服务器执行 执行批处理:在查询分析器中输入组成批处理的SQL语句,然后执行。 语法错误:批处理语句中只要其中有一句有语法错误,则所有语句都不执行。 逻辑错误:若一个批处理中的某个语句有逻辑错误(如数据溢出完整性错误),该语句将不能正常运行,但不会影响其他语句执行。这样可能会造成数据完整性上的逻辑错误。 使用事务可以保证一组SQL语句的执行,要么全部成功,若有一句语句不成功,则全部语句均不执行。 事务的开始使用BEGIN TRANSACTION 事务的结束可以是: COMMIT:提交,即所有语句均执行 ROLLBAK:回滚,即取消所有语句 例:用一个事务完成下列工作 students中address全部为ShangHai 删除‘000005’号学生(先添加) 分别用COMMIT和ROLLBACK结束该事务。 操作步骤是: 在查询分析器中运行: BEGIN TRANSACTION UPDATE client SET address=ShangHai DELETE FROM client WHERE client_id=C001 SELECT * FROM client --观察执行结果 ROLLBACK --回滚上列修改 SELECT * FROM client -- 观察执行结果 重复以上步骤,ROLLBACK换成COMMIT。 变量的定义和使用(补充) 局部变量生存期为定义它的批处理或存储过程 局部变量的定义: DECLARE @变量名 数据类型[,...n] 例:DECLARE @num INTEGER 局部变量赋值: SET @变量名=表达式 或 SELECT @变量名=〈表达式〉[FROM 表名[,...n] WHERE 子句] 显示局部变量:PRINT @局部变量 例:在查询分析器中输入下列内容,运行后看结果。 1、 DECLARE @vname varchar(10) SET @vname=WangWeiHua PRINT @vname --或 --只是一个变量 SELECT @vname --是一张表 2、 DECLARE @vname varchar(10) SELECT @vname=client_name FROM client WHERE client_id=C002 print @vname 若SELECT返回多行,则最后一行的name赋给变量vname 全局变量 SQL Server提供了30多个全局变量,可在任何批处理程序或存储过程中引用。 全局变量的引用方法为:@@变量名。 例:可用下列语句获得SQL Server的版本等信息 SELECT @@VERSION PRINT @@VERSION 流程控制语句---(1) IF语句 IF 条件表达式 BEGIN 语句[...n] END [ELSE] BEGIN 语句[...n] END //如果IF和ELSE后只有一个语句,可以省略BEGIN和END DECLARE @a INTEGER DECLARE @b INTEGER SELECT @a=AVG(grade) FROM students a,grade b WHERE a.id=b.id and a.sex=0 SELECT @b=AVG(grade) FROM students a,grade b WHERE a.id=b.id and a.sex=1 if @a@b PRINT ‘女同学平均成绩高于男同学’ else PRINT ‘男同学平均成绩高于男同学’ (2) 循环语句 WHILE 条件表达式 BEGIN 语句[...n] [BREAK] [CONTINUE] END BREAK语句使循环结束 CONTINUE语句进入下一循环 例:每个学生成绩加10%,但不能超过99(若超过99则加到99),然后判别平均分数是否达到85,若没有达到,则继续加分。 WHILE (SELECT AVG(grade) FROM grade)85 BEGIN UPDATE grade SET grade=99 WHERE grade *1.199 UPDATE grade SET grade=grade*1.1 WHERE grade *1.1=

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档