2017-03-02 162 views
0

嘿那裏,所以我試圖在SQL Server中創建一個觸發器,以便在更新記錄後自動在列中插入getdate()和SYSTEM_USER,而不是包含在更新查詢中。更新記錄後SQL Server觸發

DB: Company 

Table: dbo.Lincensee 

Column: DateModified -> I want to Insert: getdate() 
Column: ModifiedBy - > I want to insert: SYSTEM_USER 

從C#中運行的查詢中更新特定記錄後。

查詢,例如:

string strQuery = @"UPDATE dbo.Licensee SET LNAME = @LastName, 
           FNAME = @FirstName, 
           MIDNAME = @MiddleName, 
           FIRMNAME = @OrganizationName, 
           SSN = @SSN, 
           WHERE LICNUM = @licenseToUpdate"; 
SqlCommand updateCommand = new SqlCommand(strQuery, connUpdateLicense); 
... 

PS:我可以硬編碼設置查詢裏面,但我寧願它在觸發。

任何想法?謝謝。

+0

到目前爲止您嘗試了什麼,您得到了什麼錯誤?提示:你想要一個AFTER UPDATE觸發器http://stackoverflow.com/questions/25568526/sql-server-after-update-trigger –

+0

[更新觸發器後SQL Server的可能的重複](http://stackoverflow.com/questions/25568526/sql-server-after-update-trigger) –

+0

來自Suresh:試試這個鏈接,你會發現你的答案:[AFTER UPDATE TRIGGERS](http://www.tutorialgateway.org/after-update-triggers-在-SQL服務器/) –

回答

0

我跟着蘇雷什鏈接,並找到使用更新後的T-SQL代碼。並修改我的數據庫:

create trigger [INS].[licpro_modby_dateby] 
on [INS].[LICPRO] 
after insert, update 
as 
begin 
update a 
set modifiedby = system_user, 
    datemodified = getdate() 
from ins.licpro as a 
join inserted as b 
on a.licnum = b.licnum; 

謝謝你們,對不起,我遲到了。