START TRANSACTION;
/* Select the records to be changed */
SELECT * FROM changes WHERE locked=0;
/* Update records to set those that are not locked to locked */
UPDATE changes SET locked=1 WHERE locked = 0;
COMMIT;
string sql = "update changes set locked = 1, changed_date = getdate() where locked = 0;select top 1 * from changes order by changed_date desc;";
DataTable tbl = dal.fillAdapter();
2条答案
按热度按时间h43kikqp1#
根据您已澄清的内容,交易将是您的最佳选择(docs)。
ny6fqffe2#
您可以将所有查询混合在一起,以便获得所需的最终结果,您需要签署更改日期,以便能够对上次更改进行排序和筛选:
transact-sql:
或者调用保存相同查询的存储过程,可以执行scalar来检查是否有任何行因为更新而受到影响,并且只有在发生更改时才会查询最后的更改,换句话说就是没完没了的组合来解决这个问题。