㈠ 資料庫日誌中可以查看插入刪除更新等操作的記錄嗎
使用Log Explorer查看和恢復數據
Log Explorer 4.1.可用於sql Server2005的日誌查看工具
下載地址:
http://download.csdn.net/source/620271
使用方法:
打開Log Explorer -> Attach Log File -> 選擇SQL Server伺服器和登陸方式 -> Connect ->
在Database Name中選擇資料庫 -> Attach-> 左面對話框中Browse-> View Log-> 就可以看到log記錄了
想恢復的話: 右鍵Log記錄 Undo Transation-> 選擇保存文件名和路徑-> 然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然後將此insert table的代碼放到查詢分析器里執行.就可以恢復數據.
----------------------------------------------------------------------
--如何恢復被delete/update的數據
----------------------------------------------------------------------
1連接到被刪除資料庫的Db
打開log explorer 選擇 "file"->"attach log file"->選擇伺服器和登陸方式->"connect"->選擇"資料庫"->"attach"
2 查看日誌
在左面操作項目的對話框中選擇"browse"項目->"view log"->就可以看到當前的Log記錄了
3 恢復數據
右鍵某一條log記錄,選擇"undo transation"->"選擇保存文件名和路徑"->然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復被drop table和truncate table後的數據
----------------------------------------------------------------------
1 連接到被刪除資料庫的Db
操作同上
2 恢復方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語句腳步的存放位置,condition選擇是droped還是truncated,
最後點擊"create" 就會生成insert語句,把生成的語句到查詢分析器裡面執行一下就可以了
2) 選擇"ViewDDL Commands"菜單->選"truncate table" 操作項->點擊"Salvage"->生成語句->查詢分析器里執行
----------------------------------------------------------------------
--log explorer使用的幾個問題
----------------------------------------------------------------------
1) 對資料庫做完全/差異/日誌備份
備份時如果選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,就能看到原來的日誌並做恢復
2) 修改了其中一個表中的部分數據,此時用Log explorer看日誌,可以作日誌恢復
3) 然後恢復備份,(注意:恢復是斷開log explorer與資料庫的連接,或連接到其他數據上,
否則會出現資料庫正在使用無法恢復)
恢復完後,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日誌記錄,所以無法做恢復.
4) 不要用SQL的備份功能備份,搞不好你的日誌就破壞了.
正確的備份方法是:
停止SQL服務,復制數據文件及日誌文件進行文件備份.
然後啟動SQL服務,用log explorer恢復數據
㈡ 怎樣查看資料庫表記錄
52.使用完錯誤代碼之後, 應該隨手清空它,以免造成下次錯誤捕獲不正確,我們使用一uju error變數()
53.為了防止多次資料庫操作導致資料庫不完整( )我們可以使用(colse)
54. connection 對象為我們提供了三個與事務相關的方法,請寫上它們:開啟事務:(connedtion.begintrans ),結束事務並保有更改:
connection(.committrans ),結束事務並卻小更改:connection(.rollbacktrans )
55.如果我們查得到數據表中某個欄位的信息需要用recordset對象的(fields )集合中的(name )對象。
56.取得field對象的方法是:set field=recordset.fields.item(i),我們可以通過field對象的(name)屬性得到欄位名,還可以通過(
type)屬性得到欄位的類型。
57.我們可以在記錄集內移動指針,以便操作不同的數據記錄,如果我們要將指針移到最後一條記錄,可以使用(recordset.movelast )方法
,將指針移到首記錄使用(recordset.movefirst )方法,移動到上一條記錄使用(recordset.previous )方法,移動到下一條記錄可使用(
recordset.movenext )方法。
58.刪除記錄,我們可以直接使用SQL語句中的delete語句,也可以將記錄查詢到之後使用recordset對象的( delete)方法來刪除當前記錄。
雖然直接使用Delete語句刪除記錄非常方便,但有時對於一些需要進行復雜判斷才決定是否刪除記錄的情況下,我們還是要使用recordset對象
的(delete )方法來刪除記錄。
59.更新一條記錄除可以使用update語句外,還可以將記錄查詢到之後,改變各欄位的值,然後使用recordset對象的( addnew )方法來更新
數據。雖然直接使用update語句更新數據十分方便,但有時對於需要進行一些不規則更新的時候還是要使用到recordset對象的(addnew )方
法來更新數據記錄。