如何更新列

时间:2015-02-09 22:09:04

标签: sql-server sql-update

我的SQL Express 2012带有一个表,我为字数添加了一个列(整数),表已有几百行。我不确定如何更新列以使"条目"列。

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

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

3 个答案:

答案 0 :(得分:0)

试试这段代码。

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

然后应该使用该行的单词count更新表中的所有行。

谢谢,

答案 1 :(得分:0)

用于更新表中数据的SQL语言中的动词并不令人惊讶UPDATEThe documentation has the full syntax

如果要更新所有行,并且NULL列中没有Entry值(这将导致计算失败),则此查询将更新名为WordCount的列:

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

答案 2 :(得分:0)

以下是您如何做到这一点,以便您的值始终是最新的。这里有两大优势。首先,您不必更新表。其次,即使有人用查询更新你的表并且不更新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