sql能否批量删除多个行

比如Id是主键,我想一次删除id=1,id=2,id=3,id=4,id=5的行,有没有什么简单的方法?

1、首先我们打开SQL Server 2012资源管理器,在已创建好的数据库表t_call_info,查询和比较表记录。

2、利用SQL Server 2012数据库资源管理器,创建删除SQL语句,使用delete。

3、删除ID为10的记录,利用delete from 数据库表 where id=10。

4、删除记录后,再次查询数据库表,这时ID为10的记录不存在。

5、删除ID从5到8的记录,利用between...and...。

6、批量删除数据库表记录,再次查询数据库表,这时删掉了几条数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
估计你是想做web中的批量删除。

推荐用服务器端语言拼成以半角逗号分隔的id字符串
如1楼例举的1,2,3,4,5然后将这个变量拼成SQL语句。

如果是纯SQL,你要删除的这些数据会有一些共同点,按照共同点删除即可。
如delete from table where id in (xxxxxxxx) 或者delete from table where id in ( select id from table where enabled = 0)之类的。本回答被提问者采纳
第2个回答  2011-08-13
如果数量不多的话,直接在删除的时候,罗列就可以吧 比如一楼说的
如果数量很多的话,可以把这些要删除的数据存放在一个表里,然后删除的时候,去表里查询对应数据,比如把要删除的id号存放在table b中,那么

delete from table a where id in (select id from table b)
第3个回答  2011-08-13
我想的存储过程大致思路
1.给出删除几个ID的数据,
2.WHILE循环然后给出变量,
3.用变量作为主键ID,执行动态删除SQL
第4个回答  2011-08-13
delete tb where id between 1 and 5追问

我只是举个例子。。。不一定是数字,而且不一定连续的

追答

可以像1楼那样列举出来,也可以把他定义成一个变量

declare @s varchar(100)
set @s='1,2,3,4,5'
delete from tb where charindex(','+ltrim(id)+',',','+@s+',')>0