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中文網其他相關文章!