sql能否批量删除多个行
比如Id是主键,我想一次删除id=1,id=2,id=3,id=4,id=5的行,有没有什么简单的方法?...
比如Id是主键,我想一次删除id=1,id=2,id=3,id=4,id=5的行,有没有什么简单的方法?
展开
6个回答
展开全部
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、批量删除数据库表记录,再次查询数据库表,这时删掉了几条数据。
展开全部
估计你是想做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)之类的。
推荐用服务器端语言拼成以半角逗号分隔的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)之类的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果数量不多的话,直接在删除的时候,罗列就可以吧 比如一楼说的
如果数量很多的话,可以把这些要删除的数据存放在一个表里,然后删除的时候,去表里查询对应数据,比如把要删除的id号存放在table b中,那么
delete from table a where id in (select id from table b)
如果数量很多的话,可以把这些要删除的数据存放在一个表里,然后删除的时候,去表里查询对应数据,比如把要删除的id号存放在table b中,那么
delete from table a where id in (select id from table b)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想的存储过程大致思路
1.给出删除几个ID的数据,
2.WHILE循环然后给出变量,
3.用变量作为主键ID,执行动态删除SQL
1.给出删除几个ID的数据,
2.WHILE循环然后给出变量,
3.用变量作为主键ID,执行动态删除SQL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |