0
伙计们,我有一个名为tblNames的表,其中一个表名称为'UpFileName'。是否可以创建一个插入触发器来自动替换UpFileName字段中的所有'%20'来强调'_'?创建操纵SQL Server中字段的触发器
我使用的是SQL Server 2005中
伙计们,我有一个名为tblNames的表,其中一个表名称为'UpFileName'。是否可以创建一个插入触发器来自动替换UpFileName字段中的所有'%20'来强调'_'?创建操纵SQL Server中字段的触发器
我使用的是SQL Server 2005中
一般而言,这样,你的表
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,如果你不希望人们插入某些类型的数据,然后使用检查约束。现在你正在为每个插入物做额外的工作,因为这个触发器触发了
为什么不在插入/更新数据时使用'REPLACE(your_string,'%20','_')'? REPLACE:http://technet.microsoft.com/en-us/library/ms186862%28SQL.90%29.aspx – 2010-05-19 17:35:48
@OMG小马,更好的是,如果CHARINDEX在列中找到任何'%20',检查约束失败!使应用程序写入正确的数据! – 2010-05-19 17:38:24