更新语句问题,请各位高手进来指教
出错信息:
服务器: 消息 1101,级别 17,状态 10,行 1
未能为数据库 'TEMPDB' 分配新页。在文件组 DEFAULT 中已没有更多的页可供使用。采取除去对象、添加另外的文件或允许文件增长等手段可创建空间。
语句:
Update Sal_HumanInfo
Set MaxEduLevel = (case when aa.code1<IsNull(bb.code2,'999') then aa.edulevel else bb.incumbencyedulevel end)
From
((select a.num,a.edulevel,b.edulevelcode as code1
from sal_HumanInfo a
left join SalStandard.dbo.Gzc_Sal_TryOut b
on a.edulevel=b.edulevel) aa
left join
请问各位高手,这到底是什么原因,是SQL语句的原因还是?
在我装SQL Server的盘里,那个TempDb已经达到7G
导致整个D盘被装满
(select a.num,a.IncumbencyEdulevel,b.edulevelcode as code2
from sal_HumanInfo a
left join SalStandard.dbo.Gzc_Sal_TryOut b
on a.IncumbencyEdulevel=b.edulevel) bb
on aa.num=bb.num)
问题点数:0、回复次数:7Top
1 楼sdhdy(大江东去...)回复于 2003-09-04 18:05:36 得分 0
清除一下日志:
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)
在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------
得到以下结果
fileid groupid name
2 0 test_log
以上结果,fileid为日志文件ID,name为test_log
你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复 模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple
方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
Top
2 楼sdhdy(大江东去...)回复于 2003-09-04 18:06:15 得分 0
清除一下日志:
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)
在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------
得到以下结果
fileid groupid name
2 0 test_log
以上结果,fileid为日志文件ID,name为test_log
你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复 模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple
方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
Top
3 楼pengdali()回复于 2003-09-04 18:09:39 得分 0
1、马上重起sqlserver,tempdb自己会释放。
2、移动tempdb和数据文件分开存储是优化的一个方法,步骤:
1、用Enterprise Manager或sp_helpdb查看tempdb现在存放的位置
2、用
alter database tempdb modify file(name='tempdev',filename='newpath\newfilename')
alter database tempdb modify file(name='templog',filename='newpath\newfilename')
3、关闭sqlserver重起
4、删掉旧的tempdb文件Top
4 楼txlicenhe(马可)回复于 2003-09-04 19:17:11 得分 0
重起sqlserverTop
5 楼nboys()回复于 2003-09-04 19:41:54 得分 0
清空日志:
dump transaction databaseName with no_log
dbcc shrinkfile ('.log_fileName',newsize)Top
6 楼nboys()回复于 2003-09-04 19:43:14 得分 0
把数据库改为自动增长:
右击数据库--属性--日志文件---自动增长Top
7 楼zjcxc(邹建)回复于 2003-09-04 20:19:40 得分 0
你的磁盘空间不够,当然不能插入数据了.
方法1: 清除磁盘上的不需要的文件,增加文件空间.
方法2: 压缩数据库,在查询分析器中执行:dbcc shrinkdatabase('数据库名')
Top
8 楼Afei1(阿飞1)回复于 2003-09-05 08:57:07 得分 0
问题是sql语句写错了
大家注意看sql语句好不好Top




