我不想使用表锁定,而我也不知道一页是多少,我只想锁定确定的几条记录怎么办?第二个我说的意思是这些sql应该被看作一条语句来执行,这和事务等效吗?例如我正在执行一个,然后另一个进程更新了数据库,这样这个就会得出错误的结果(这个时候err=0)。
解决方案 »
- 怎么让指定的值显示在SELECT查询结果的最前面
- 兄弟们,小弟有个问题,搞了很久,搞不出来,帮帮忙
- sql语句求助???
- 异地SQL数据库查询一个表
- 这里的朋友,请帮帮忙,关于(会计期)应付帐款计算的问题,偶不会.
- 求一条SQL语句
- SQL查询分析器中全角和半角的区别
- 求救!SQL语句执行时提示变量没生明,但是这个变量确实生明过了,为什么!!!
- 如何把一个表的数据添加到另外一个表,并递增id。
- 将access数据库转换成sql后用sqloledb重新建立连接后提示:Microsoft OLE DB Provider for SQL Server 错误 '80004005' 用户 'sa' 登录失
- 关于向存储过程中传递字符参数的问题;急
- 请问sql server的正版是什么价格?
2. 不,有可能产生逻辑错误,例如第一个进程取出order,然后update ordernext=order+1,这时候另一个进程把这个order改了。。
当你的一个进程在更新数据库的某条记录,那么就会自动获得一个排他锁,其它进程此时只能等待,等第一个进程释放锁后才能去修改数据,不会出现你说的更新数据时还有其它的进程同时更新。
你的第二个问题是希望能连续执行几条sql语句,我的理解是你可能要求排他地连续执行,zhudexiang(阿祥)说的没错,要使用事务,而且还要设置事务隔离级别:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
这样,当第一个进程取出order,修改的过程中,其它进程取都取不到,更谈不上修改了。
这种最普通的并发操作,数据库肯定会处理好的,不用你过多操心。