2010-05-19 45 views
0

夥計們,我有一個名爲tblNames的表,其中一個表名稱爲'UpFileName'。是否可以創建一個插入觸發器來自動替換UpFileName字段中的所有'%20'來強調'_'?創建操縱SQL Server中字段的觸發器

我使用的是SQL Server 2005中

+2

爲什麼不在插入/更新數據時使用'REPLACE(your_string,'%20','_')'? REPLACE:http://technet.microsoft.com/en-us/library/ms186862%28SQL.90%29.aspx – 2010-05-19 17:35:48

+1

@OMG小馬,更好的是,如果CHARINDEX在列中找到任何'%20',檢查約束失敗!使應用程序寫入正確的數據! – 2010-05-19 17:38:24

回答

3

一般而言,這樣,你的表

CREATE TRIGGER trTriggerName ON tblNames 
AFTER INSERT AS 
UPDATE tblNames 
    SET UpFileName = replace(UpFileName,'%20','_') 
FROM tblNames t 
JOIN INSERTED i ON t.ID = i.ID 

不過的PK更換ID,如果你不希望人們插入某些類型的數據,然後使用檢查約束。現在你正在爲每個插入物做額外的工作,因爲這個觸發器觸發了