对于加锁是相对事务而言的,也就是说数据库锁需要在事务环境当中执行,否则虽然通常的数据库系统支持锁定,但是它的时间是非常短暂的,仅仅只在数据资料在数据库系统内部操作时。不过前提是你的数据库系统支持事务支持锁定。锁定之后,会有两种解锁方式,一种是你的操作完成后马上解锁(此种使用不多,特别是对于更新锁不使用此类锁定),另一种则是当操作发生时即锁定,一直到事务提交或者回滚。
use MyDatabase
go
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;--设置事务等级
GO
BEGIN TRANSACTION;--启动事务
go
select * from mytablename with (XLOCK,HOLDLOCK )--加X锁,全程锁定
go
waitfor DELAY '00:05:00' --由于是测试,所以这里面让它延续5分钟
go
commit transaction --提交事务