我在工作中遇到數據庫問題。目前正在進行審計,但其笨拙,需要很多維護,而且在一些方面缺乏。所以我正在取代它。MS SQL審計
我想以儘可能通用的方式做到這一點,並設計了表格,以及如何鏈接和更新所有內容。
現在,這一切都很好,但我希望能夠寫一個通用的方式來插入記錄到這些審計表。 (無需爲每個表中的每列都輸入一條命令)
反正在存儲過程中迭代表中的所有列嗎?我想以這種方式編寫它,它將與多個表一起工作,並自動拾取和審計添加的列等。
任何想法?
編輯:猜猜我應該澄清。我將審覈表中的數據。但是我將使用相同的表來存儲數據庫中每個表的審計數據。
而且我不能使用觸發器,因爲通常,當更新發生時,它會發生在多個表中,但我希望所有這些更新都是單個更改集的一部分。
這不是問題,因爲我可以在單個存儲過程中執行所有更新。我只是喜歡像循環一樣的方式,我可以得到所有更新的字段,找出哪些更改,並將更改後的插入到審計表中。
我想這樣做沒有一長串if語句和每列插入語句。 (通過在通用循環中執行此操作,它將自動處理添加的列,而不會受到刪除列的困擾)
我寧願不必這樣做,因爲那樣我就不得不提前知道每一列。我希望這個系統能夠自動選擇新的列,並且在沒有任何干預的情況下忽略已刪除的列。我想做一切從存儲特效。 – TJMonk15 2009-01-08 18:50:02
我可以理解想要通過procs做所有事情,但使用COLUMNS_UPDATED(),你應該能夠確定哪些列被更新,而不必知道表中的列是什麼。 – cmsjr 2009-01-08 18:56:06