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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么修改SQL SERVER2008的select产生的临时结果存放的位置?每次查询行数较多的结果都会把C盘占满。相关的知识,希望对你有一定的参考价值。

如果是select操作导致C盘空间占用过多,那么就是tempdb增长引起的,需要修改tempdb文件的路径到可用空间充足的分区。
修改tempdb的路径需要用sql语句操作
比如D盘空间很充足,假设文件放在D盘根目录
那么语句就是
ALTER DATABASE tempdb
MODIFY FILE(name='tempdev',filename='D:\tempdb.mdf')

ALTER DATABASE tempdb
MODIFY FILE(name='templog',filename='D:\templog.ldf')

当然也可以修改路径到任意存在的目录下
修改完重启SQL Server即可生效追问

"E:\temp\tempdb.mdf" 指定的路径不在有效目录中。是什么情况,你这个修改是修改的服务器上的位置,还是我进行SELECT的这台机器的位置,我是我操作这台机器一进行SELECT就把C盘占得满满的。

追答

你所说的C盘满是服务器的C盘还是你当前的这台机器的C盘满?如果是服务器C盘满,那就按前边说的语句,把tempdb修改到一个存在的目录下,比如你修改的E盘temp目录必须存在,这个是说的服务器上的路径。如果是本地机器的C盘满,那你就得考虑一下是不是有必要把那么大的结果集都在客户端工具里展示出来了,如果没有必要都显示出来,尽量使用TOP来限定返回的结果集的行数。另外SQL server Management Studio存放查询结果的临时文件是存放在用户的temp目录下的。目录位置跟系统有关,不同版本的系统位置不一样,可以在命令提示符里输入
echo %temp%
来确认temp目录的位置。

追问

本机的那个有没有办法改?

追答

如果你确定确实需要返回那么大的结果集,那么就修改temp目录的位置吧。不知道你是什么版本的系统。在系统属性-高级-环境变量里修改用户TEMP环境变量的位置,重启计算机才能生效。不过我感到挺遗憾的,开始以为是数据库问题,到最终却是系统问题。。。

参考技术A 你把数据修改路径到其他盘符即可

sql server 数据库换行符怎么使用

SQL 关键字 换行符号:char(10) ,回车:char(13)
假如需要拼接一段SQL 语句,并且需要于换行的模式显示
declare @SQL nvarchar(max)
set @SQL=' select * from Table '+char(10)
set @SQL=@SQL+' where a=10' +char(10)
print @SQL:
结果如下:
select * from Table
where a=10
参考技术A 注意你安装了sql
express数据库,请先启动sql服务,然后连接字符串应该是:
server=.\sqlepxress;database=数据库名;integrated
security=sspi
参考技术B 转成xml <br>

以上是关于怎么修改SQL SERVER2008的select产生的临时结果存放的位置?每次查询行数较多的结果都会把C盘占满。的主要内容,如果未能解决你的问题,请参考以下文章

SQL server 2008R2中怎么直接修改表内数据

如何修改SQL Server 2008数据库服务器名称

如何修改sql server 2000 里的表中的内容?

如何修改SQL Server 2008数据库服务器名称

sql server2008 怎么改变字段类型

sql server 2008怎么修改视图中的字段属性!!例如修改字段名和字段类型!