首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

循环执行语句 不要游标有其他方法吗

2012-10-17 
循环执行语句 不用游标有其他方法吗?我要将数据库中所有表名为tmp_开头的表 一次全都删除内容例如tmp_aaat

循环执行语句 不用游标有其他方法吗?
我要将数据库中所有表名为tmp_开头的表 一次全都删除内容
例如tmp_aaa
  tmp_bbb
  tmp_ccc
  tmp_...

DELETE FROM TMP_AA


一次性循环处理

[解决办法]
while也是循环,但是while每次循环可以是一个数据集,而游标只有一行,万不得已可以尝试改成while。对于嵌套类型的循环,首先建议使用CTE。

对于你这个。貌似不需要做循环把?从sys.tables那里一次找出表名然后动态拼接成delete 语句就可以拉
[解决办法]

SQL code
declare @sql nvarchar(2000)set @sql=''select @sql=@sql+ ' delete from '+ name from sys.sysobjects where name like 'temp%'print @sqlexec (@sql)
[解决办法]
顶楼上!
[解决办法]
while 的循环性能不如游标
无论那种都慢
能不循环尽量不要用循环
[解决办法]
DELETE 太慢了,用truncate来清除数据
SQL code
declare @sql varchar(max)set @sql=''select @sql=@sql+'truncate table '+name+';' from sys.tables where name like '%temp'exec(@sql) 

热点排行