欢迎来到天天文库
浏览记录
ID:58874735
大小:637.50 KB
页数:15页
时间:2020-09-21
《实验15事务与并发控制.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、....实验十五 事务与并发控制【实验目的与要求】1.掌握数据库事务的概念2.熟悉数据库的四个特性3.熟练掌握数据库事务的实现方法【实验容与步骤】15.1.SQLServer数据库事务基础知识1.事务的概念(Transaction)所谓事务是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。关系数据库中,事务可以是一条SQL语句、一组SQL语句。在SQL语言中,定义事务的语句有三条:BeginTransaction开始Commit结束Rollback回滚2.事务开始:BEGINTRANSACTIO
2、N标记一个显式本地事务的起始点。BEGINTRANSACTION将TRANCOUNT加1。语法结构:BEGINTRAN[SACTION][transaction_name
3、tran_name_variable[WITHMARK['description']]]参数说明:transaction_name:是给事务分配的名称。transaction_name必须遵循标识符规则,但是不允许标识符多于32个字符。仅在嵌套的BEGIN...COMMIT或BEGIN...ROLLBACK语句的最外语句对上使用事务名。tran_name_vari
4、able:是用户定义的、含有有效事务名称的变量的名称。必须用char、varchar、nchar或nvarchar数据类型声明该变量。WITHMARK['description']:指定在日志中标记事务。Description是描述该标记的字符串。如果使用了WITHMARK,则必须指定事务名。WITHMARK允许将事务日志还原到命名标记。4.事务提交:COMMITTRANSACTION标志一个成功的隐性事务或用户定义事务的结束。如果TRANCOUNT为1,COMMITTRANSACTION........使得自从事务开始以来所执行的
5、所有数据修改成为数据库的永久部分,释放连接占用的资源,并将TRANCOUNT减少到0。如果TRANCOUNT大于1,则COMMITTRANSACTION使TRANCOUNT按1递减。语法结构:COMMIT[TRAN[SACTION][transaction_name
6、tran_name_variable]]参数说明:transaction_name:MicrosoftSQLServe忽略该参数。transaction_name指定由前面的BEGINTRANSACTION指派的事务名称。transaction_name必须遵循标识符的
7、规则,但只使用事务名称的前32个字符。通过向程序员指明COMMITTRANSACTION与哪些嵌套的BEGINTRANSACTION相关联,transaction_name可作为帮助阅读的一种方法。tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用char、varchar、nchar或nvarchar数据类型声明该变量。5.事务回滚:ROLLBACKTRANSACTION将显式事务或隐性事务回滚到事务的起点或事务的某个保存点。语法结构:ROLLBACK[TRAN[SACTION][transac
8、tion_name
9、tran_name_variable
10、savepoint_name
11、savepoint_variable]]参数说明:transaction_name:是给BEGINTRANSACTION上的事务指派的名称。transaction_name必须符合标识符规则,但只使用事务名称的前32个字符。嵌套事务时,transaction_name必须是来自最远的BEGINTRANSACTION语句的名称。tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用char、varchar、ncha
12、r或nvarchar数据类型声明该变量。savepoint_name:是来自SAVETRANSACTION语句的savepoint_name。savepoint_name必须符合标识符规则。当条件回滚只影响事务的一部分时使用savepoint_name。savepoint_variable:是用户定义的、含有有效保存点名称的变量的名称。必须用char、varchar、nchar或nvarchar数据类型声明该变量。15.1.SQLServer数据库事务创建1.事务的创建(1)在查询分析器中执行以下语句,创建一个名为t_InsUpda
13、te简单的事务,并使它正常提交。Begintransactiont_InsUpdate--t_InsUpdate为事务名UseCPXSInsertintoCP(产品编号,产品名称,价格,库存量)Values('100021','宝马汽
此文档下载收益归作者所有