2018年10月21日
锁的对象
资源 RID Key Page Extent 说明 以记录(Row)为单位作锁定 已设置为索引的字段 数据页或索引页(8KB大小的页面) 8个连续的Page(分配内存给数据页时的 单位) 整个数据表(包含其中所有数据及索引) 整个数据库
2018年10月21日
Table DB
@savepoint_variable
是用户定义的、含有有效保存点名称的变量的名称。必须用 char、varchar、 nchar 或 nvarchar 数据类型声明该变量。 BEGIN TRAN„„ SAVE TRAN TempTran„„ IF(@@ERROR<>0) BEGIN ROLLBACK TRAN TempTran –-回滚到事务保存点 „„ /*失败时所使用的变通方案*/ END...IF(...) COMMIT ELSE ROLLBACK
锁的方法
独占式锁(Exclusive Lock):Exclusive锁可禁 止其他事务对数据作存取或锁定操作 共享式锁(Shared Lock):Shared锁可将数据设成 只读,并禁止其他事务对该数据作Exclusive锁定, 但却允许其他事务对数据再作Shared锁定。 更改式锁(Update Lock):Update锁可以和Shared 锁共存,但禁止其他的Update锁或Exclusive锁。
2018年10月21日
分布式事务
如果要在事务中存取多个数据库服务器中的数据(包含执行存储过程), 就必须使用“分布式事务”(Distributed Transaction) Begin Distributed tran Insert into CourseInfo(CourseID,CourseName) values('A00232','TestName') If @@ERROR<>0 GOTO ERRORPROC INSERT INTO AnotherServer.DatabaseName.dbo.tablename (FieldName1,FieldName2) values('Values1','Values2') ERRORPROC: IF @@ERROR<>0 ROLLBACK ELSE COMMIT