[點(diǎn)晴永久免費(fèi)OA]SQL Server之delete top刪除超大海量數(shù)據(jù)報(bào)錯(cuò)解決方案
以下示例刪除 Testdb 表中所有行的 10%: --刪除測(cè)試數(shù)據(jù)
--以下示例刪除 Testdb 表中所有行的 10%。 delete TOP (10) PERCENT from Testdelete GO --下面這句執(zhí)行錯(cuò)誤 ----delete TOP (10) PERCENT from Testdelete order by PKID desc ----GO 當(dāng)遇到超大數(shù)據(jù)時(shí)(百萬(wàn)、千萬(wàn)以上),可能會(huì)發(fā)現(xiàn)delete失去響應(yīng),無(wú)法刪除任何數(shù)據(jù),可以用以下方法輕松對(duì)超大海量數(shù)據(jù)進(jìn)行制定刪除:
delete from mis_action_log where id in (select top 100000 id from mis_action_log where input_time<'2022-1-1' order by id asc)
如果不需要排序,那么以下方法也是可以的:
delete top (10000) from mis_action_log where input_time<'2022-1-1'
此方法為SQL Server 2005以上版本才支持,而且不支持后面帶排序效果,并且要?jiǎng)h除的數(shù)量10000前后都必須有括號(hào)。
該文章在 2024/1/23 17:33:09 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |