select top 操作:数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
在查询分析器里面执行: 
 select   top   377   *   from   tableA   order   by   id   desc 
 提示:数据库    'tempdb '   的日志已满。请备份该数据库的事务日志以释放一些日志空间。 
 如果执行select   *   from   tableA   order   by   id   desc则没有任何错误提示
------解决方案--------------------mark 
------解决方案--------------------看看你的磁盘空间
------解决方案--------------------数据库  'tempdb ' 的日志已满   
 ---------------------------------------   
 这种情况找个人少的时候,比如晚上没什么人使用了,将SqlServer服务重启, 
 因为重启的时候会删除 tempdb 数据库,然后创建一个新的   
------解决方案--------------------清除日志:      
 DECLARE @LogicalFileName sysname, 
         @MaxMinutes INT, 
         @NewSize INT 
 USE     szwzcheck             -- 要操作的数据库名 
 SELECT  @LogicalFileName =  'szwzcheck_Log ',  -- 日志文件名 
 @MaxMinutes = 10,               -- Limit on time allowed to wrap log. 
         @NewSize = 20                  -- 你想设定的日志文件的大小(M) 
 -- Setup / initialize 
 DECLARE @OriginalSize int 
 SELECT @OriginalSize = size  
   FROM sysfiles 
   WHERE name = @LogicalFileName 
 SELECT  'Original Size of  ' + db_name() +  ' LOG is  ' +  
         CONVERT(VARCHAR(30),@OriginalSize) +  ' 8K pages or  ' +  
         CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) +  'MB ' 
   FROM sysfiles 
   WHERE name = @LogicalFileName 
 CREATE TABLE DummyTrans 
   (DummyColumn char (8000) not null) 
 DECLARE @Counter   INT, 
         @StartTime DATETIME, 
         @TruncLog  VARCHAR(255) 
 SELECT  @StartTime = GETDATE(), 
         @TruncLog =  'BACKUP LOG  ' + db_name() +  ' WITH TRUNCATE_ONLY ' 
 DBCC SHRINKFILE (@LogicalFileName, @NewSize) 
 EXEC (@TruncLog) 
 -- Wrap the log if necessary. 
 WHILE     @MaxMinutes >  DATEDIFF (mi, @StartTime, GETDATE()) -- time  
       AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =  
 @LogicalFileName)   
       AND (@OriginalSize * 8 /1024) >  @NewSize   
   BEGIN -- Outer loop. 
     SELECT @Counter = 0 
     WHILE  ((@Counter  < @OriginalSize / 16) AND (@Counter  < 50000)) 
       BEGIN -- update 
         INSERT DummyTrans VALUES ( 'Fill Log ')   
         DELETE DummyTrans 
         SELECT @Counter = @Counter + 1 
       END    
     EXEC (@TruncLog)   
   END    
 SELECT  'Final Size of  ' + db_name() +  ' LOG is  ' + 
         CONVERT(VARCHAR(30),size) +  ' 8K pages or  ' +  
         CONVERT(VARCHAR(30),(size*8/1024)) +  'MB ' 
   FROM sysfiles  
   WHERE name = @LogicalFileName 
 DROP TABLE DummyTrans 
 SET NOCOUNT OFF    
 把szwzcheck换成你数据库的名字即可,在查询分析器里面运行。  
 有全角的空格(为了显示好看),你自己把他换一下.      
 收缩日志:   
 企业管理器--所有任务--收缩数据库--文件--选日志文件收缩 
------解决方案--------------------收缩日志文件:   
 脚本为: 
 dump tran databasename with no_log 
 backup log databasename with no_log 
 dbcc shrinkdatabase(databasename)
------解决方案--------------------要不你的日志文件过大,要不就是你最开始已经限制了日志文件的大小   
 建议楼主收缩日志吧
------解决方案--------------------收缩日志应该是可以的吧
------解决方案--------------------应该写法有问题,有很多地方创建临时表了,但是没有释放吧。