怎样批量删除sql表中数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样批量删除sql表中数据?相关的知识,希望对你有一定的参考价值。

我有个sql表wdta,表中第一列名称为ta001,其中一条数据为200901010001,我想批量删除200901******的所有行,请问该怎么办?

参考技术A delete from wdta where ta001 like '200901%'
这样删除会删除所有已200901开头的行,而不管位数
delete wdta where ta001 like '200901______'
这样删除会删除所有已200901开头的行,但是后面只有六位数本回答被提问者采纳
参考技术B 有两种办法可以删除表中的所有数据:
1、TRUNCATE
TABLE
删除表中的所有行,而不记录单个行删除操作。
语法
TRUNCATE
TABLE
name
参数
name
是要截断的表的名称或要删除其全部行的表的名称。
2、Delete
from
tablename
where
1=1
参考技术C delete wdta where ta001 like '200901______'

like中下划线表示一个字符,六个下划线表示200901后边需有6个字符 满足这样的就删除
参考技术D delete from wdta where ta001 like '200901%'
'ABC%': 所有以 'ABC' 起头的字串。举例来说,'ABCD' 和 'ABCABC' 都符合这个套式。
第5个回答  2009-08-12 考滤用循环列出要删除的字段到一个数组,然后循环删除

SQL 如何对数据库中相同名称的表中数据进行批量修改

数据库名称是:USERXJ012007~USERXJ402007
表的名称是:z_jzbz
列名称是:jjrq 注:(第一列)是日期型数据2007-7-1
第一列第一行数据由空或则日期 改为我所需要的日期
不同的数据库 批量 命令有吗? 谢谢了
我按照这个语句执行后update z_jzbz set jjrq=2007-7-1 where jjrq=2009-7-1 提示(所影响的行数为 0 行) 数据也没有修改 怎么回事 注:2007-7-1是原来的数据 2009-7-1是需要改成的数据
单独执行update z_jzbz set jjrq=2007-7-1时,数据变成了1905-6-23 请问是什么问题谢谢。

另外update a.jjrq = b.jjrq from USERXJ012007..z_jzbz a,USERXJ402007 ..z_jzbz b
where a.jjrq is null 看不明白这个语句

有命令改不同的数据库 ,方法是在数据库名称后歼加两个点再加表名
update a.jjrq = b.jjrq from USERXJ012007..z_jzbz a,USERXJ402007 ..z_jzbz b
where a.jjrq is null
**意思就是修改USERXJ012007库z_jzbz表的 jjrq字段=USERXJ402007库z_jzbz 表的jjrq字段
参考技术A update z_jzbz set jjrq=2009-7-1 where where jjrq=2007-7-1 参考技术B use master
go

DECLARE @Name varchar(500)
DECLARE test CURSOR FOR
select [name] from sys.databases where [name] like 'USERXJ%'
OPEN test
FETCH NEXT FROM test INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
Exec('update '+@Name+'.dbo.z_jzbz set jjrq=''2009-7-1'' where jjrq=''2007-7-1''')
FETCH NEXT FROM test INTO @Name
END

CLOSE test
DEALLOCATE test
GO

以上是关于怎样批量删除sql表中数据?的主要内容,如果未能解决你的问题,请参考以下文章

sql命令删除id用SQL语句批量删除指定ID

excel表中如何大批量删除数据?

使用“一条”SQL语句完成批量插入和批量删除操作

使用“一条”SQL语句完成批量插入和批量删除操作

mysql存储过程怎样批量插入数据

怎么使用SQL语句批量删除多个表的相同字段