--锁定记录,只允许单用户修改的例子:--创建测试环境--创建测试表--部门表create table 部门(departmentid int,name varchar(10))--记录锁定表create table lock(departmentid int,dt datetime)go--因为函数中不可以用getdate,所以用个视图,得到当前时间create view v_getdate as select dt=getdate()go--创建自定义函数,判断记录是否锁定create function f_chk(@departmentid int)returns bitasbegindeclare @re bit,@dt datetimeselect @dt=dt from v_getdateif exists(select 1 from lock where departmentid=@departmentidand datediff(minute,dt,@dt)<5) --锁的超时时间为5分钟set @re=1elseset @re=0return(@re)endgo--数据处理测试,操作记录3if dbo.f_chk(3)=1print '记录被锁定'elsebeginbegin traninsert into lock values(3,getdate())update 部门 set name='A' where departmentid=3delete from lock where departmentid=3commit tranend--删除测试环境drop table 部门drop view v_getdatedrop function f_chk