使用循环一次更新100万条数据
Update 1 million of data at a time using a loop
我需要使用循环一次更新100万条数据。这就是我的。
SET Rowcount 1000000
While (1 = 1)
Begin
Begin Transaction
Update as
Set as.productInd = 0
From Product as
Where as.ProductInd IS NULL
If @@RowCount = 0
Begin
Commit Transaction
Break
End
Commit Transaction
End
Set Rowcount 0
SET ROWCOUNT
处于 UPDATE
的弃用途径
语句(here's the KB article about it)。因此,如果您 运行 反对现代或旧版本的引擎,您可以使用:
SET ROWCOUNT 1000000
UPDATE Product
SET productInd = 0
WHERE productInd IS NULL
SET ROWCOUNT 0
一些注意事项:
- 你只有一个语句,所以它已经隐含在一个事务中。
- 不要使用
as
作为 table 别名;这是一个保留字。 (我有点惊讶编译器让你,事实上!)
- 由于
ROWCOUNT
更新即将结束,如果您仍想完成您的要求,则需要在存储过程中使用循环。
我需要使用循环一次更新100万条数据。这就是我的。
SET Rowcount 1000000
While (1 = 1)
Begin
Begin Transaction
Update as
Set as.productInd = 0
From Product as
Where as.ProductInd IS NULL
If @@RowCount = 0
Begin
Commit Transaction
Break
End
Commit Transaction
End
Set Rowcount 0
SET ROWCOUNT
处于 UPDATE
的弃用途径
语句(here's the KB article about it)。因此,如果您 运行 反对现代或旧版本的引擎,您可以使用:
SET ROWCOUNT 1000000
UPDATE Product
SET productInd = 0
WHERE productInd IS NULL
SET ROWCOUNT 0
一些注意事项:
- 你只有一个语句,所以它已经隐含在一个事务中。
- 不要使用
as
作为 table 别名;这是一个保留字。 (我有点惊讶编译器让你,事实上!) - 由于
ROWCOUNT
更新即将结束,如果您仍想完成您的要求,则需要在存储过程中使用循环。