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中文网其他相关文章!