首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新表sql server中的前1条记录

更新表sql server中的前1条记录
EN

Stack Overflow用户
提问于 2013-12-12 09:04:02
回答 6查看 197.8K关注 0票数 51

我的疑问

代码语言:javascript
复制
UPDATE TOP (1) TX_Master_PCBA  
SET TIMESTAMP2 = '2013-12-12 15:40:31.593'
WHERE SERIAL_NO IN ('0500030309') 
ORDER BY TIMESTAMP2 DESC 

使用serial_No列在TX_Master_PCBA表中,我有10条记录,但我希望将最新的TIMESTAMP2更新为当前的日期时间。

上面的查询正在抛出错误:

关键字“TOP”附近的语法不正确。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-13 10:07:06

代码语言:javascript
复制
UPDATE TX_Master_PCBA
SET TIMESTAMP2 = '2013-12-12 15:40:31.593',
G_FIELD='0000'
WHERE TIMESTAMP2 IN 
(
   SELECT TOP 1 TIMESTAMP2
   FROM TX_Master_PCBA WHERE SERIAL_NO='0500030309'
   ORDER BY TIMESTAMP2 DESC   -- You need to decide what column you want to sort on
)
票数 24
EN

Stack Overflow用户

发布于 2014-11-26 09:36:46

代码语言:javascript
复制
WITH UpdateList_view AS (
  SELECT TOP 1  * from TX_Master_PCBA 
  WHERE SERIAL_NO IN ('0500030309') 
  ORDER BY TIMESTAMP2 DESC 
)

update UpdateList_view 
set TIMESTAMP2 = '2013-12-12 15:40:31.593'
票数 62
EN

Stack Overflow用户

发布于 2015-09-04 10:00:18

Kapil的公认答案是有缺陷的,如果有2条或多条有相同时间戳可用的记录,它将更新多条记录,而不是真正的前1位查询。

代码语言:javascript
复制
    ;With cte as (
                    SELECT TOP(1) email_fk FROM abc WHERE id= 177 ORDER BY created DESC   
            )
    UPDATE cte SET email_fk = 10

参考文献Rusanu Ans:- SQL update top1 row query

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20539095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档