如何更新列

How to Update a Column

我有 SQL Express 2012,其中 table 我为字数添加了一列(整数),table 已经有几百行。我不确定如何更新该列以获取 "entry" 列中的字数。

我创建了一个显示数据的查询,但如何使用它来更新 table 以存储每个条目的字数?

SELECT 
  ID, 
  [UserName],
  [DateCreated], 
  LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1 AS 'Word Count'
FROM [dbo].[Notes]

试试这段代码。

UPDATE Notes SET
WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1

然后这应该使用该行的字数更新 table 中的所有行。

谢谢,

SQL 语言中用于更新 table 中的数据的动词并不奇怪 UPDATEThe documentation has the full syntax.

如果您想更新所有行并且 Entry 列中没有 NULL 值(这会使计算失败),那么此查询将更新名为 [=14= 的列]:

UPDATE Notes SET WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1

以下是您如何做到这一点,以便您的值始终是最新的。这里有两大优势。首先,您不必更新 table。其次,即使有人用查询更新了您的 table 而没有更新 WordCount,这些值也始终是最新的。

create table #test
(
    Entry varchar(100) 
    , WordCount as LEN(Entry) - LEN(REPLACE(Entry, ' ', '')) 
)

insert #test
select 'two words' union all
select 'three words now'

select * from #test

drop table #test