是否可以寫一個接受外部參數的觸發器?如何創建在SQL Server中接受外部參數的觸發器?
這樣做的主要原因是,我僅限於連接到使用只ONE數據庫用戶數據庫。現在我正在開發數據庫應用程序,併爲每個單獨的表創建觸發器以存儲歷史記錄。
雖然存儲歷史數據,我想存儲申請用戶名誰做了Insert
,Update
或Delete
。我以爲使用User_Name()
但知道,它只返回數據庫用戶,NOT應用程序用戶。
因此,我正在尋找一些關於使用外部參數創建觸發器的建議,以便我可以將應用程序用戶的ID傳遞給此觸發器。想想我已經清楚地解釋了我的需求。提前致謝 !
編輯
外部參數應該類似於存儲過程的參數一些地方我們可以通過價值
EDIT2
可能我的描述不夠清晰。所以我給你一個例子。
我正在開發的Web應用程序與帳戶相關。因此要跟蹤所需的數據更改。例如,賬戶人員可以更改員工的薪資和佣金信息。如果輸入/更新了錯誤的信息,那麼整體財務結果將會產生很大的負面影響。現在在系統中,用戶使用userid &密碼登錄系統,然後對員工信息進行一些更改。在這個階段,我想要保持這樣的軌跡:誰更改了員工信息,更改前的值以及更改前的值和更改完成後的值。所以,將來如果出現任何問題,我可以通過PROOF找出發生錯誤的用戶。
不一定,它應該使用觸發器來完成,但也歡迎任何其他選擇。
什麼是「應用程序用戶ID」?它是SQL登錄,Windows帳戶還是其他? SYSTEM_USER是否返回你想要的或不? – Pondlife 2012-03-21 11:57:04
你從哪裏獲得應用程序用戶?爲什麼你不能在觸發器內查找應用程序用戶? – adrianm 2012-03-21 11:58:05
嘗試使用'CONTEXT_INFO()',嘗試使用[將一個變量傳遞給觸發器](http://stackoverflow.com/questions/2646547/pass-a-variable-into-a-trigger),請參閱鏈接以獲取答案使用這個。 – 2012-03-21 14:34:54