为了防止在查询记录的时候被其他用户更改记录,应该采用什么方法,如何用查询语句实现该方法: 加锁就行了
--对于上边问题的示例
--创建一个测试表
select * into tb from syscolumns
go
--执行下面的语句
select * from tb a,tb b with(tablockx)
select getdate()
go
--删除测试
drop table tb
/*========================================*/
--新开一个窗口,执行下面的语句:
select * from tb
select getdate()
比较两个查询完成的时间就可以发现,第二个窗口中的语句是在第一个窗口查询完成后才完成的,换句话说,第一个窗口的查询锁住了表,直到它执行完成才给其他用户查询这个表
例如:数据库db里边有a和b两个用户,一个tb表
右击tb表--属性--权限 你就可以看到各个用户在数据库所拥有的权限,如果你不想让某个用户访问tb表.就可以把select点成叉.就可以阻止该用户访问该表或者通过继承的方式访问该表.