ami*_*min 1 sql t-sql transactions petapoco
我有一张名为 Car
Table car ( id int NOT NULL, plate int NOT NULL, sent_to_server bit NOT NULL );
Run Code Online (Sandbox Code Playgroud)
我想选择所有尚未发送到服务器的汽车
SELECT *
FROM car
WHERE sent_to_server = 0;
Run Code Online (Sandbox Code Playgroud)
然后我应该更新我的数据库
UPDATE car
SET sent_to_server = 1
WHERE sent_to_server = 0;
Run Code Online (Sandbox Code Playgroud)
我有多个线程所以这行不通(多个线程同时读取和写入数据库-(我使用 sql server))
如何在一个查询中执行 2 个查询?或者有更好的解决方案!?
注意:我将 C# 与 petapoco 库一起使用(如果重要的话!)
只要您使用的是 SQL Server 2005 或更高版本,您就可以OUTPUT
在单个查询中使用。
UPDATE Car
SET sent_to_server = 1
OUTPUT Inserted.id, Inserted.plate
WHERE sent_to_server = 0;
Run Code Online (Sandbox Code Playgroud)
这将更新sent_to_server
为零的行并返回修改后的行。不需要交易。