为了防止在查询记录的时候被其他用户更改记录,应该采用什么方法,如何用查询语句实现该方法: 加锁就行了
--对于上边问题的示例
--创建一个测试表
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()
比较两个查询完成的时间就可以发现,第二个窗口中的语句是在第一个窗口查询完成后才完成的,换句话说,第一个窗口的查询锁住了表,直到它执行完成才给其他用户查询这个表

解决方案 »

  1.   

    这我觉得是不太可能的了.只能通过权限来进行控制了,让谁访问或者不让谁访问某表.让某个人有读的权限,让某个人有写的权限.
    例如:数据库db里边有a和b两个用户,一个tb表
      右击tb表--属性--权限  你就可以看到各个用户在数据库所拥有的权限,如果你不想让某个用户访问tb表.就可以把select点成叉.就可以阻止该用户访问该表或者通过继承的方式访问该表.
      

  2.   

    SELECT  *  FROM  AUTHORS  HOLDLOCK