SQL Delete TOP语句

SQL Delete TOP语句,sql,sql-server,delete-row,Sql,Sql Server,Delete Row,我的表(SQLServer2000)包含大量行,当我删除行时,速度非常慢 我看到一些帖子/论坛建议使用WHILE循环函数批量删除记录 我的sql是: DELETE FROM Tprs_master where Fincmonth='201109'; 我已改写为: DELETE FROM(SELECT TOP 100 FROM tprs_master) AS t1 WHERE t1.Fincmonth='201109' 但它不起作用 如何重写上述sql以删除顶级样式?谢谢给出了示例和语法 DE

我的表(SQLServer2000)包含大量行,当我删除行时,速度非常慢

我看到一些帖子/论坛建议使用WHILE循环函数批量删除记录

我的sql是:

DELETE FROM Tprs_master where Fincmonth='201109';
我已改写为:

DELETE FROM(SELECT TOP 100 FROM tprs_master) AS t1 WHERE t1.Fincmonth='201109'
但它不起作用

如何重写上述sql以删除顶级样式?谢谢

给出了示例和语法

DELETE TOP (100) FROM Tprs_master where Fincmonth='201109';
注意:仅限SQL Server 2005+版本

有关更多示例,请参见

编辑:OP拥有SQL Server 2000

SET ROWCOUNT 100
DELETE FROM Tprs_master where Fincmonth='201109';
SET ROWCOUNT 0
给出了示例和语法

DELETE TOP (100) FROM Tprs_master where Fincmonth='201109';
注意:仅限SQL Server 2005+版本

有关更多示例,请参见

编辑:OP拥有SQL Server 2000

SET ROWCOUNT 100
DELETE FROM Tprs_master where Fincmonth='201109';
SET ROWCOUNT 0

设置SQL Server 2000的行数:@DavidEG:我没有提到它有副作用,因为它也限制了中间结果,这可能会造成混乱。不过,只需简单的删除就可以了。SQL Server 2000现在已经是古老的历史了:)@Joe Yan:请问SQL Server的哪个版本?@Joe Yan:答案更新了:我猜是SQL Server 2000。您之前询问了有关SQL Server 2008的问题:您运行的是混合环境吗?设置SQL Server 2000的行数:@DavidEG:我没有提到它有副作用,因为它也限制了中间结果,这可能会让人困惑。不过,只需简单的删除就可以了。SQL Server 2000现在已经是古老的历史了:)@Joe Yan:请问SQL Server的哪个版本?@Joe Yan:答案更新了:我猜是SQL Server 2000。您在前面询问了有关SQL Server 2008的问题:您运行的是混合环境吗?