【发布时间】:2016-05-13 19:09:05
【问题描述】:
我坦率地承认,我对 sybase 的返回码一无所知。我的经验主要是使用 Oracle 和 SQL Server。这个特定项目需要插入到表的二进制字段中,该字段由于条目被锁定而定期失败。查看代码,我似乎无法成功检测到锁定条件。我目前的策略是插入数据,然后选择并确定插入是否成功,如果在重试尝试之间没有使用休眠几秒钟的线程,则重试。这无法解释在我的原始数据插入之前可能已更改条目的其他数据,并且可能比我尝试插入的数据更新。有没有一种简单的方法可以在尝试插入之前确定该行是否被锁定,等待锁定清除,然后在插入之前自己锁定该行?或者,如果我可以检测到条目被锁定,那么我可以使事务失败并提醒用户注意失败,以便可以手动检查它。在有人问之前,我无法更改 RDMS 的体系结构如何设置锁定条目。这必须由执行插入的代码来处理。
【问题讨论】:
-
LOCK TABLE <<table>> IN EXCLUSIVE MODE NOWAIT将尝试在您的表上获取排他锁。检查@@error != 0,如果它没有这样做
标签: sap-ase