我只需要更新数据库中的一条记录,并将其分配给用户。这是我在做什么:

UPDATE TOP (1) books SET assigneduser = 1
WHERE bookstatus = 7
AND ((assigneduser is null) or (assigneduser = 1));


我也有一个名为bookname的字段,我希望按该字段排序,但是update似乎不支持它。

还要注意,我一次将有50个用户使用该软件,因此我需要确保仅分配给一个用户一本书。否则,我将先运行一次select,然后在最上面的记录上进行更新。

谢谢。

最佳答案

您必须首先选择所需的记录,然后对其进行更新:

update books
    set assigneduser = 1
where BookPrimaryKeyField = (
    SELETE TOP 1 BookPrimaryKeyField
    from books
    WHERE bookstatus = 7
    AND ((assigneduser is null) or (assigneduser = 1));
)

关于sql - SQL:是否可以在更新语句上使用Order By?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6310694/

10-10 13:19