回答

收藏

在SQL Server有批量删除的解决方案吗?

技术问答 技术问答 222 人阅读 | 0 人回复 | 2023-09-14

在SQL Server有批量删除的解决方案吗?
- {4 S  R) d4 h. {% t6 ^我不能使用TRUNCATE,因为我想用WHERE来限制行。5 R9 q8 {1 d# S5 c
是否有批量复制等(bcp)删除数据之类的东西?' @  U0 m5 P" k3 O
                                                                9 B, o3 \2 a' j/ R
    解决方案:                                                                0 x: e- I) I9 j; [5 m
                                                                不。
* v$ N; q/ }3 ]6 v. T) h您需要带WHERE子句的DELETE:这是标准SQL。
9 f. I. O2 n  ~  q- ~7 m, i- s' s) s您所能做的就是批量删除,如下所示:
8 m  `2 D3 n( O% t) H/ _! A* xSELECT 'Starting' --sets @@ROWCOUNTWHILE @@ROWCOUNT  0    DELETE TOP (xxx) MyTable WHERE ...或者,如果你想删除高比例的行…. N( }2 K# y& ^) p0 O6 x5 ~
SELECT col1,col2,... INTO #Holdingtable           FROM MyTable WHERE ..opposite condition..TRUNCATE TABLE MyTableINSERT MyTable (col1,col2,...)           SELECT col1,col2,... FROM #Holdingtable
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则