SQLServer数据库应用第十一章.ppt

SQLServer数据库应用第十一章.ppt

ID:50973722

大小:312.00 KB

页数:65页

时间:2020-03-16

SQLServer数据库应用第十一章.ppt_第1页
SQLServer数据库应用第十一章.ppt_第2页
SQLServer数据库应用第十一章.ppt_第3页
SQLServer数据库应用第十一章.ppt_第4页
SQLServer数据库应用第十一章.ppt_第5页
资源描述:

《SQLServer数据库应用第十一章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第十一章SQLServer中的程序设计1主要内容批处理的基本概念事务处理SQLServer的流程控制语句211.1批处理的基本概念系统将批处理语句作为整体编译成一个可执行单元,即执行计划包含一个或多个T-SQL语句的组批处理这些语句被应用程序一次性地发送到SQLServer执行3(1)应用程序作为一个执行单元发出的所有SQL语句构成一个批处理,并生成单个执行计划(2)存储过程或触发器内的所有语句构成一个批处理。每个存储过程或触发器都编译为一个执行计划(3)由EXECUTE语句执行的字符串指定批处理的方法4例:在Northwind库中创建testview视图,并查询

2、视图中存在的数据,该视图从表Products中提取各产品的名称和价格数据5USENorthwindgoCREATEVIEWtestviewASSELECTProductName,UnitPriceFROM[Products]goSELECT*FROMtestviewgo6批处理结束的符号或标志是字符串’go’。批处理可以交互地运行或从一个文件中运行。提交给T-SQL的文件可以包含多个SQL批处理,每个批处理之间以批处理分隔符go命令中止7例:在pubs库中列出authors表中au_id字段和au_fname字段,其中要求au_id字段以7开头USEpubsSEL

3、ECTau_id,au_fnameFROMauthorsWHEREau_idLIKE'7%'GO8USENorthwindgoCREATEVIEWmy_viewASSELECTLastName,FirstNameFROMEmployeesINSERTINTOmy_viewVALUES('John','David')go无效的批处理,insert语言前加go就可以了9UseNorthwindGoCREATETABLEmy_table(c1smallint,C2varchar(5))goALTERTABLEADDc3intINSERTINTOmy_table(3,’l

4、ove’,255)go10问题什么时候用批处理?1111.2事务处理SQLServer把单个工作单元定义为事务任何单个SQL语句都可看成一个单个的工作单元,在SQLServer中,事务处理可以通过一段SQL程序来完成12事务的由来DELETEFROMdepartmentWHEREdepartment_id=‘D004’DELETEFROMemployeeWHEREdepartment_id=‘D004’13事务处理语句包含在如下两行语句当中BEGINTRANSACTION[transaction_name]……COMMITTRANSACTION[transacti

5、on_name]14三种事务运行模式自动提交事务:每条单独的语句都是一个事务显式事务:以BEGINTRANSACTION语句开始,以COMMIT或ROLLBACK语句结束的事务;用户定义的事务也称为显式事务15隐性事务:在前一事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句完成16例:通过事务来保证Northwind库中表Products和表OrderDetails上的所有ProdcutID为40的产品其单价翻番BEGINTRANSACTIONmy_transaction--开始一个事务UPDATE[Products]--更新Produc

6、ts表SETUnitPrice=2*UnitPriceWHEREProductID=4017SAVETRANSACTIONmy_savepoint--保存能回滚的点UPDATE[OrderDetails]--更新OrderDetails表SETUnitPrice=2*UnitPriceWHEREProductID=40COMMITTRANSACTION18例:创建一个在COMMITTRANSACTION语句之前带有ROLLBACKTRANSACTION子句的事务my_transaction。该子句将撤销从SAVETRANSACTIONmy_savepoint到RO

7、LLBACKTRANSACTIONmy_savepoint之间的语句对数据库所作的任何修改19BEGINTRANSACTIONmy_transactionUPDATE[Products]SETUnitPrice=2*UnitPriceWHEREProductID=40SAVETRANSACTIONmy_savepointUPDATE[OrderDetails]SETUnitPrice=2*UnitPriceWHEREProductID=40ROLLBACKTRANSACTIONmy_savepointCOMMITTRANSACTION由于执行了回滚操作,表Orde

8、rDeta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。