- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验十五 事务与并发控制
姓名: 学号: 专业: 11网络工程 班级: 同组人: 无 实验日期:
【实验目的与要求】
掌握数据库事务的概念
熟悉数据库的四个特性
熟练掌握数据库事务的实现方法
【实验内容与步骤】
SQL Server数据库事务基础知识
1.事务的概念( Transaction )
所谓事务是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
关系数据库中,事务可以是一条SQL语句、一组SQL语句。
在SQL语言中,定义事务的语句有三条:
Begin Transaction 开始
Commit 结束
Rollback 回滚
2.事务开始:BEGIN TRANSACTION
标记一个显式本地事务的起始点。BEGIN TRANSACTION将 @@TRANCOUNT 加 1。
语法结构BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable
[ WITH MARK [ description ] ] ]
参数说明:
transaction_name:是给事务分配的名称。transaction_name 必须遵循标识符规则,但是不允许标识符多于 32 个字符。仅在嵌套的 BEGIN...COMMIT 或 BEGIN...ROLLBACK 语句的最外语句对上使用事务名。
@tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
WITH MARK [description]:指定在日志中标记事务。Description 是描述该标记的字符串。
如果使用了 WITH MARK,则必须指定事务名。WITH MARK 允许将事务日志还原到命名标记。
4.事务提交:COMMIT TRANSACTION
标志一个成功的隐性事务或用户定义事务的结束。如果 @@TRANCOUNT 为 1,COMMIT TRANSACTION 使得自从事务开始以来所执行的所有数据修改成为数据库的永久部分,释放连接占用的资源,并将 @@TRANCOUNT 减少到 0。如果 @@TRANCOUNT 大于 1,则 COMMIT TRANSACTION 使 @@TRANCOUNT 按 1 递减。
语法结构:
COMMIT [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] ]
5.事务回滚:ROLLBACK TRANSACTION
将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点。
语法结构:
ROLLBACK [ TRAN [ SACTION ]
[ transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable ] ]
SQL Server数据库事务
1.事务的创建
(1)在查询分析器中执行以下语句,创建一个名为t_InsUpdate简单的事务,并使它正常提交。
Begin transaction t_InsUpdate --t_InsUpdate为事务名
Use CPXS
Insert into CP(产品编号,产品名称,价格,库存量)
Values(100021,宝马汽车,456780,39)
Update XSS
Set 负责人=张飞
Where 客户编号=000003
Commit transaction t_InsUpdate --事务提交结束,t_InsUpdate为事务名
select * from xss; ”,看数据是否添加到表中?
请给出测试结果:
(2)在查询分析器中执行以下语句,创建一个简单的事务,并使它回滚
BEGIN TRANSACTION
Use CPXS
select * from xss;
update xss
set 客户名称=厦门理工学院
where 客户编号=000002;
select * from xss;
Rollback;
select * from xss;
请给出测试结果:
思考:比较两条查询语句
文档评论(0)