ms sql server 2008 tempdb里的temporary tables怎么删数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ms sql server 2008 tempdb里的temporary tables怎么删数据相关的知识,希望对你有一定的参考价值。

参考技术A 使用proc sql;delete from....where...语句,提醒你注意做好备份,防止出错。
proc sql;
delete from a
where 条件语句;

quit;

SQL Server如何删除多余tempDB文件

某时,创建了多个tempDB文件,已经超过了服务器核心数,现象删除tempDB文件,使其保持与CPU核心数相同。但是在删除的时候,发现无法删除,报出错误:无法删除文件“tempdev3”,因为它不能为空(Microsoft SQL Server,错误:5042)

  

  此时,使用脚本查看数据和日志文件使用情况:

SELECT DB_NAME() AS DbName,
name AS FileName,
size/128.0 AS CurrentSizeMB,
size/128.0 - CAST(FILEPROPERTY(name, \'SpaceUsed\') AS INT)/128.0 AS FreeSpaceMB
FROM sys.database_files;

   

  可以看到tempdev3这个文件已经被占用了一部分空间,在实际生产中,可能每个文件都会被占用,这里只做实验用。

  面对这种情况,就需要对tempdb中tempdev3这个文件进行收缩,在收缩前,需要确保此文件里不会有临时表等临时文件,因此需要将这些全部删除之后再进行收缩,收缩脚本:

USE tempdb
GO
DBCC SHRINKFILE (tempdev3, EMPTYFILE); -- to empty "tempdev3" data file
GO
   收缩完毕之后,将该文件删除,脚本如下:

ALTER DATABASE tempdb
REMOVE FILE tempdev3; --to delete "tempdev3" data file
GO
   以上就完全删除了tempdb中多余的文件。

 

以上是关于ms sql server 2008 tempdb里的temporary tables怎么删数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL server2008 临时表tempdb如何自动释放存储空间

怎么修改SQL SERVER2008的select产生的临时结果存放的位置?每次查询行数较多的结果都会把C盘占满。

ms sql2012 能否安装在win2008 server

SQL server2008-对象资源管理器-数据库

如何找到 MS SQL Server 2008 的端口?

将 php 连接到 MS SQL Server 2008