學生無法網頁查詢某學期成績
今天註冊組反應,有些學生的學期成績無法網頁查詢,查驗 syear_index.asp 的程序是跑 SP_SYEAR 這支預存程序,測試不能顯示的學生帳號,顯示的錯誤訊息是資料過長,經查該學生的所有科目成績,發現該學生在 BSEME_SCORE 的 SCORE_P 欄位的資料有 *58.0 的記錄,以位元組來講是 5 位元組,可是在 SP_SYEAR 的 #T 的 SCORE1,SCORE2,SCORE3 的 CHAR(4) 都只有 4 位元組,當然會錯誤,反正是網頁查詢,為了方便就直接將 4 位元組改成 CHAR(5) 的 5 位元組就 OK .
只是有個疑問,查了一開始宜佳的資料表手冊,BSEME_SCORE 的 SCORE_P 的欄位是 CHAR(3) ,可是查現 HSDB 資料庫的 BSEME_SCORE 的 SCORE_P 是 CHAR(5) ,不知是什麼時候改的,而網頁查詢部份怎麼沒有順便更改
MS SQL SERVER 2000 LOG檔太大
教你一個土方法
先卸除資料庫
如果你的資料庫建置在預設目錄的話
可以在下列路徑刪除檔案
C:\Program Files\Microsoft SQL Server\MSSQL\Data\資料庫名稱.ldf
然後重新附加資料庫即可
最後再去限制交易記錄檔的成長空間
1. 先將 Transaction Log
BACKUP LOG <db name> WITH NO_LOG
2. 利用 sp_helpdb 找出 DB 的 log file 的 logical name
一般預設的名稱是 <db name>_log
3. 將 Logfile 檔案變成指定大小的 size
DBCC SHRINKFILE ( <log file name>, <file size> )
ex. DBCC SHRINKFILE(ABC_log,3)
這樣就可以不須要停掉 DB 伺服器
至 於要自動覆蓋記錄檔?這個 SQL Server 2000 並不支援,不過您可以利用 BACKUP LOG <db name> WITH NO_LOG 的指令,定期清除記錄檔,或是是將復原模式改成 simply 或是 Bulk-Logged 如果交易記錄檔對您的復原並不重要
參考自 http://forum.tpc.edu.tw/ShowPost.aspx?PostID=3172
2008-01-11 新增 dellog.sql
今天在清除 HSDB 的 Log 檔時,想說每次都要手動修改很不方便,於是就想說要修改的資料庫只有 HSDB,CPA,PSM 寫一個 sql 檔,放在 mssql 的維護計劃內,讓它每個星期天清理一次就好了,於是就寫了一個 dellog.sql 的程序,禮拜一去看看,如果執行成功就太完美了,以後就不用擔心 LOG 檔太大的問題