㈠ sql 根据ID循环删除行
--可以将字符串分解成行插入到一个表变量
--然后根据ID 删除要删除的数据
--
--
--这是以前CSDN大版主邹建 写的一个方法,很好很强大
/*
分解公式
将公式按运算分解到表中
*/
declare @str varchar(100)
declare @i int,@str1 varchar(10),@str2 varchar(10)
set @str='1,2,3,4' --要分解的字符串
declare @tb table(num varchar(20),operation varchar(2)) --定义保存结果的表
--公式分拆
set @i=patindex('%[^0-9]%',@str)
while @i>0
begin
select @str1=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[0-9]%',@str)
,@str2=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[^0-9]%',@str)
insert into @tb values(@str1,@str2)
end
if @str<>'' insert into @tb values(@str,'')
--显示分拆结果
select * from @tb
--删除就这样 @tb一定要取个别名
DELETE TabelName
FROM @tb AS TA
WHERE TabelName.ID = TA.ID
以上是SQLSERVER 写法 希望对你有帮助
㈡ 数据库删除语句
数据库删除语句如下:
1、delete。基础用法:delete from table(表名)。这个用于删除有明确定义的数据或者整个表的数据。比如:id是唯一不可重复的,delete from Student where id=5,即把id=5的唯一的一条数据删除。
2、rop基础用法:drop table +表名称、drop database +数据库名称、drop index +索引名称、drop view +视图名称返袜(*在不同数据库中写法不一定是一样的),只针对删除表来说,delete用于删除整个表的数据以及结构。即把整个表彻底删除,表中的数据和字段等等全部被删除。
3、truncate基础用法:truncate table +表名称。删除表中的全部数据,包括占用的id也会全部清除。表结构不会改变,一般来说想重新往表中导入数据,就会用到这个方法。
数据库删除语句的注意事项。
用delete语句删除掉的数据,原本的被占用id并不会被删除。意思是你删除掉了id中1-10的数据,你再往里加数据,id就是从11开始。所以有些不太熟练数据库的入门者,就可能会看核卜到id断断续续(1,5,7,8,11)排序,有可能是因为使用了detele删除了某些数据。在删除数据之改世穗前,可以使用SELECT语句对DELETE语句中的WHERE子句进行测试,这样可以对即将删除的数据进行验证,保证不会勿删。
㈢ 我要删除table表里面ID字段500条数据以后的数据的sql语句怎么写,请教!
delete from 表名 where id not in (select top 500 * id from table order by id asc)
select top 500 * id from 表名order by id asc//查询表中钱500数据根据id按升序排列
delete from 表名 where id not in (select top 500 * id from table order by id asc)
就是删除表中不是前500条的数据
㈣ 我想用SQL做选择性删除,怎么写,按ID来选择删除,用表单还是用语句
你上面代码太乱 你想用sql做选择性删除可以这样子 在页面选中几个值后 然后用String id=request.getParameterValues()得到ID的一个集合 然后根据集合的长度循环得值删除
例如:
String id[]=request.getParameterValues("id");
for(int x=0;x<id.length;x++){
test.setId(new Long(id[x]));
factory.delete(test);
}