我要将数据库中所有表名为tmp_开头的表 一次全都删除内容
例如tmp_aaa
tmp_bbb
tmp_ccc
tmp_...DELETE FROM TMP_AA
一次性循环处理
例如tmp_aaa
tmp_bbb
tmp_ccc
tmp_...DELETE FROM TMP_AA
一次性循环处理
解决方案 »
- 仍是Sql查询问题
- sql server 如何合并多个表
- 为何一执行大数据量的删除时,总会导致服务器带宽使用急速下降,网站访问速度变慢?
- 求交叉表的语句
- 关于复制的问题.各位大哥看一看啊!!!!F1,F1,F1,F1,F1,F1,HELP!!!
- 2个存储过程效率不高,帮我提高下效率,如果没有提高效率的方法,讲讲那个效率高,3q
- 如何修改数据库名(在SQL语句中),我用的时候出错,急!!
- 請教高手!!創建一個用戶要能執行imp和exp,需要有哪些權限???
- 为什么没人理我,我第一次发表贴子,CSDN很让我失望!
- 无法创建链接服务器的前提下,如何访问另外一台访问的数据
- 怎么样去合并数据??
- sql语句 查出某字段的最后一条记录
declare @sql nvarchar(2000)
set @sql=''
select @sql=@sql+ ' delete from '+ name from sys.sysobjects where name like 'temp%'
print @sql
exec (@sql)
无论那种都慢
能不循环尽量不要用循环
declare @sql varchar(max)
set @sql=''
select @sql=@sql+'truncate table '+name+';' from sys.tables where name like '%temp'
exec(@sql)
declare @sql nvarchar(4000) --改成了这样 还是提示 不够长
--截取的最后的一段SQL :delete from tmp_111_mx delete from tmp_228_mx de
--declare @sql varchar(8000) --改成了这样 也还是提示 不够长
--截取的最后的一段SQL :delete from tmp_111_mx delete from tmp_228_mx deset @sql=''
select @sql=@sql+ ' delete from '+ name from sys.sysobjects where name like 'temp%'
print @sql
exec (@sql)
[/code]使用 annatrov 的方法 执行OK