有一张SQLSERVER表A当别人往该表插数据或修改数据时,我的java程序执行的SELECT等待,一直到别人的事务提交后,再执行我的select语句
我的程序执行SELECT语句的时候,不让别的程序往这张表插数据或删除修改数据,让别的程序等待,注意是等待,不 能让别人的程序报错。请问,我该怎么做
最好给出实际的代码。
我的程序执行SELECT语句的时候,不让别的程序往这张表插数据或删除修改数据,让别的程序等待,注意是等待,不 能让别人的程序报错。请问,我该怎么做
最好给出实际的代码。
等到别人提交后再SELECT?
我的业务是这样
我在做一个接口程序别人有一个程序定期向SQL SERVER插数据
数据形态如下
NO DATE1
0001 2005-10-10 00:00:01
0002 2005-10-10 00:00:02
0003 2005-10-10 00:00:03
0004 2005-10-10 00:00:04
DATE1为别人在运行INSERT那个点的时间假设在插第二条记录的时候我的程序运行了,需要SELECT
select no,date1,getdate() from a
我希望等别人的程序把全部4条记录都插完并提交后,我的SELECT运行,并且这时GETDATE()函数得到的时间大于最后一条记录的时候,即大于2005-10-10 00:00:04
是啊,我就是不希望发生这种情况啊,我希望如果别人正在INSERT的时候,我的SELECT 能自动等待,等别人都提交完了再SELECT select * from 表 with(TABLOCKX) 不知道以上的独占锁表操作可不可以实现自动等待?
无论别人是否正在update,你的select总是会执行的.
或者
select * from a WITH (TABLOCK)
这样应该可以解决你需要的问题,上述都需要启动事务