U8临时表删除
Posted Hello World,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U8临时表删除相关的知识,希望对你有一定的参考价值。
用友U8在使用过程中会产生大量临时表,导致数据库中的多数空间都是临时数据,据说有补丁可以解决问题,但没有找到。
根据分析,临时表的表名通过由Tmp_ 、UFTmpTable以及TMPUF_开头,而且表名都比较长,多数超过20个字符。以此为条件将表名查询出来,拼接SQL语句进行删除即可。
DECLARE @name VARCHAR(100);
DECLARE @sql VARCHAR(200), @i INT;
SET @i = 1;
DECLARE cur CURSOR FOR
SELECT name
FROM sysobjects
WHERE xtype = 'u' AND (name LIKE 'Tmp_%' OR name LIKE 'UFTmpTable%' OR name LIKE 'TMPUF_%') AND LEN(name) > 20
ORDER BY name;
OPEN cur;
FETCH NEXT FROM cur
INTO @name;
WHILE @@fetch_status = 0
BEGIN
IF LEFT(@name, 10) = 'UFTmpTable' OR LEFT(@name, 4) = 'Tmp_' OR LEFT(@name, 6) = 'TMPUF_'
BEGIN
SET @sql = 'drop table ' + @name;
EXECUTE (@sql);
PRINT '第' + RIGHT('000' + CONVERT(NVARCHAR(5), @i), 4) + '个表:' + @name + ' 已经删除';
SET @i = @i + 1;
END;
FETCH NEXT FROM cur
INTO @name;
END;
CLOSE cur;
DEALLOCATE cur;
以上是关于U8临时表删除的主要内容,如果未能解决你的问题,请参考以下文章