Sql server 更快地更新多行SQL Server

Sql server 更快地更新多行SQL Server,sql-server,Sql Server,我有表编号(Id int主键标识,Value int)。我想用一个空值和另一个不重叠的值更新2000列的Value 我使用while来更新 DECLARE @i_min INT SET @i_min = 1 DECLARE @max INT SELECT @max = COUNT(*) FROM Number WHERE ((Value IS NULL OR Value ='')) WHILE @i_min <= @max BEGIN UPDATE b SET

我有表
编号(Id int主键标识,Value int)
。我想用一个空值和另一个不重叠的值更新2000列的
Value

我使用while来更新

DECLARE @i_min INT
SET @i_min = 1

DECLARE @max INT

SELECT @max = COUNT(*) 
FROM Number 
WHERE ((Value IS NULL OR Value =''))

WHILE @i_min <= @max 
BEGIN
    UPDATE b 
    SET b.Value = dbo.func_increase_number 
    FROM 
        (SELECT TOP 1 Value 
         FROM Number a
         WHERE (a.Value IS NULL OR a.Value ='')) b

    SET @i_min = @i_min + 1
声明@i_min INT
设置@i_min=1
声明@max INT
选择@max=COUNT(*)
从数字
其中((值为NULL或值=“”))

当@i_min时,您也可以更新列值,而无需使用WHILE循环 前


检查它并告诉我它是否工作

这是一个完整的查询吗?我看不到
循环
开始时
结束

UPDATE Number
SET Value = dbo.func_increase_number 
FROM 
Number 
WHERE Value IS NULL OR Value =''