2010-05-19 13 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,如果你不希望人们插入某些类型的数据,然后使用检查约束。现在你正在为每个插入物做额外的工作,因为这个触发器触发了