名站网址导航为大家提供关于数据库教程相关的教程网站知识。
浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
锁有两种分类具体相关方法。 (1) 从网站数据库系统的角度来看 锁分为以下三种类型: •独占锁(Exclusive Lock) 独占锁锁定的资源只允许进行锁定操作办法的程序使用,其它任何对它的操作办法均不会被接受。执行数,•共享锁(Shared Lock) 共享锁锁定的资源可以被其它用户读取,但其它用户不能修改它。在SELECT 开始执行命令执行时,SQL Server 通常会对对象进行共享锁锁定。通常加共享锁的数据页被读取完,•更新锁(Update Lock) 更新锁是为了防止死锁而设立的。当SQL Server 准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取。等到SQL Server 确定,(2)从程序员的角度看 锁分为以下两种类型: •乐观锁(Optimistic Lock) 乐观锁假定在处理数据时,不需要在应用程序的具体相关代码中做任何事情就可以直接在记录上加锁、即完全依靠网站数据库来管理锁的工,•悲观锁(Pessimistic Lock) 悲观锁对网站数据库系统的自动管理不感冒,需要程序员直接管理数据或对象上的加锁处理,并负责获取、共享和放弃正在使用的数据上的任何锁。
在网站数据库编程中,事务是经常需要用到的技术,在.net平台上,事务处理是非常好用的,但是在Sql Server网站数据库的存储过程中如何使用事务来完成数据的批量操作办法呢?
解决方案如下: 大概都是这样处理的:
复制具体相关代码 具体相关代码如下:
CREATE PROC RegisterUser
(@usrName varchar(30), @usrPasswd varchar(30),@age int, @PhoneNum varchar(20), @Address varchar(50) )
AS
BEGIN
BEGIN TRAN -- 显示定义并开始一个事务
SET XACT_ABORT ON -- 表示遇到错误立即回滚
INSERT INTO USER(userName,userPasswd) values(@usrName,@usrPasswd)
IF @@error <> 0 --发生错误
BEGIN
ROLLBACK TRANSACTION
RETURN 0
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN 1 --执行成功
END
END
够简洁!
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。