首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql怎么按条件删除大量数据(面试题)

2012-10-10 
sql如何按条件删除大量数据(面试题)今天碰到一个面试题:有一个Student表有ID,Class,Name,Sex四个字段,要求

sql如何按条件删除大量数据(面试题)
今天碰到一个面试题:

有一个Student表有ID,Class,Name,Sex四个字段,要求删除Class =‘0903’,Sex =‘M' 的所有记录(满足条件的记录超过3万)

听说应该用分段处理,但是多次尝试都没有成功,所以向大侠请教!

[解决办法]
按id分段删除.

DECLARE @i INT
SET @i=5000
DELETE STUDENT WHERE ID<@i AND Class ='0903' AND Sex ='M' 
WHILE @@ROWCOUNT>0
BEGIN
BEGIN TRAN
SET @i=@i+5000
DELETE STUDENT WHERE ID<@i AND Class ='0903' AND Sex ='M'
COMMIT TRAN
END
[解决办法]

SQL code
SET ROWCOUNT 100WHILE 1=1BEGIN    DELETE FROM Student WHERE lass ='0903' AND Sex ='M'    IF @@ROWCOUNT<100 BREAKENDWHILE 1=1BEGIN    DELETE TOP (100) FROM Student WHERE lass ='0903' AND Sex ='M'    IF @@ROWCOUNT<100 BREAKEND
[解决办法]
SQL code
--2000 or 2005set rowcount 5000DELETE STUDENT WHERE Class ='0903' AND Sex ='M'WHILE @@ROWCOUNT>0BEGIN    DELETE STUDENT WHERE Class ='0903' AND Sex ='M'ENDset rowcount 0 

热点排行