首頁 > 資料庫 > mysql教程 > SQL Server 2008中有像bcp之類的用於插入的批次刪除命令嗎?

SQL Server 2008中有像bcp之類的用於插入的批次刪除命令嗎?

Patricia Arquette
發布: 2025-01-04 22:04:40
原創
433 人瀏覽過

Is There a Bulk Delete Command in SQL Server 2008 Like bcp for Inserts?

SQL Server 2008 中的批次刪除:刪除操作的平行批次複製

在本次查詢中,需要進行批次刪除SQL Server 2008 中出現這種情況的原因是缺乏可與批次複製操作(bcp) 相媲美的資料刪除直接解決方案。為了解決這個問題,使用者尋求一種替代方案,能夠以 WHERE 子句的精度實現批量刪除。

官方回應證實 SQL Server 中缺乏專門的批次刪除指令。但是,它提供了實用的替代方案來實現所需的結果。

批次刪除

一種方法是使用以下語法執行批次刪除:

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...
登入後複製

這允許您指定批次大小(xxx)並迭代刪除行,直到沒有更多行

刪除大多數行的備用刪除策略

在需要刪除大量行的場景中,更有效的方法是使用以下步驟:

SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable
登入後複製

這涉及建立一個臨時儲存表,其中包含不被刪除的行,然後截斷主表桌子。最後,保存表中的資料被重新插入主表中。

以上是SQL Server 2008中有像bcp之類的用於插入的批次刪除命令嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板