如何使用具有正确ID的同一表中的select查询进行更新?

时间:2017-09-26 04:59:54

标签: sql sql-server

我有一个简单的任务(他们说!),我需要使用select语句更新表列。

如下所示:

Test table

所以,让我们说这个表A,我在之前的pcsProduces列上有一个错误的数据, 现在我想将腔体和heatcyclecount相乘,然后我想将pcsProduces列更新为适当的值。

问题是,我有成千上万的记录,如果有人可以通过展示如何使用简单的更新和选择查询来帮助我,我真的很感激。

2 个答案:

答案 0 :(得分:2)

只需激活SQL Update命令,如:

 update tablename set pcsProduces = cavities * heatcyclecount

答案 1 :(得分:1)

您至少有两个选项:

  1. 使用update语句更新整个表(where子句是可选的):

    update TbYourTable
    set pcsProduces = cavities * heatsOrCyclecount
    where pcsProduces != cavities * heatsOrCyclecount  
    
  2. 使用计算列(MS SQL语法)

    create table [TbYourTable]
    (
       [Id]                int       identity(1,1) not null
    ,  [domainS]           int                     not null
    ,  [tStations]         int                     not null
    ,  [itemNo]            int                     not null
    ,  [defaultCavities]   int                     not null
    ,  [missingCavities]   int                     not null
    ,  [cavities]          int                     not null
    ,  [heatsOrCyclecount] int                     not null
    ,  [shift]             nvarchar  (max)             null
    ,  [pcsProduces]       as ([cavities] * [heatsOrCyclecount]) persisted not null -- peristed clause is optional
    
    ,  constraint [PK_TbYourTable] primary key nonclustered
       (
          [Id] asc
       )
    
    ) on [primary];