相关疑难解决方法(0)

如何使用ms sql更新和订购

理想情况下我想这样做:

UPDATE TOP (10) messages SET status=10 WHERE status=0 ORDER BY priority DESC;
Run Code Online (Sandbox Code Playgroud)

英文:我想从数据库中获取前10个可用(状态= 0)消息并锁定它们(状态= 10).应首先获得具有更高优先级的消息.

遗憾的是,MS SQL不允许更新中的order by子句.

无论如何如何规避这个?

sql t-sql sql-server sql-order-by sql-update

49
推荐指数
3
解决办法
9万
查看次数

SQL更新top1行查询

以下查询正在运行:

update  top(1) ShipBillInfo 
set     shipfirstname='kkk' 
where   CustomerId='134';
Run Code Online (Sandbox Code Playgroud)

但如果我尝试按某些Id订购,则显示错误:例如:

update  top(1) ShipBillInfo 
set     shipfirstname='kkk' 
where   CustomerId='134' 
order by 
        OredrGUID desc;
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

31
推荐指数
3
解决办法
7万
查看次数

带有ORDER BY的SQL UPDATE TOP?

我有以下查询:

UPDATE TOP (@MaxRecords) Messages 
SET    status = 'P' 
OUTPUT inserted.* 
FROM   Messages 
where Status = 'N'
and InsertDate >= GETDATE()
Run Code Online (Sandbox Code Playgroud)

在Messages表中有优先级列,我想首先选择高优先级消息.所以我需要一个ORDER BY.但是我不需要在更新运行之前对输出进行排序,而是对数据进行排序.

据我所知,不可能将ORDER BY添加到UPDATE语句中.还有其他想法吗?

sql sql-server

24
推荐指数
2
解决办法
3万
查看次数

用于更新表中前1个记录的SQL查询

任何人都可以告诉我如何编写查询来更新表中的前1条记录?

谢谢

sql

2
推荐指数
1
解决办法
2万
查看次数