Topic
我可以以某种方式拦截这个插页,以便' a'将被插入MyChar而不是' ['?
我可以编写一个触发器,在创建行之后进行更新,但这看起来很麻烦。有没有办法在插入点执行此操作?
注意:我无法更改发送到数据库的insert语句,因为这是由我控制之外的应用程序发送的。
编辑:道歉 - 这与Microsoft SQL Server(2008)
有关答案 0 :(得分:1)
Sql Server支持instead of insert triggers以及replace
,这基本上只需要满足此要求:
CREATE TRIGGER Example_InsteadOfInsert ON Example
INSTEAD OF INSERT
AS
INSERT INTO Example (ID, MyChar)
SELECT ID,
REPLACE(MyChar, '[', 'a')
FROM inserted;
GO
如果要用多个替换替换多个字符,可以嵌套替换语句:
SELECT ID,
REPLACE(
REPLACE(MyChar, '[', 'a')
,']', 'b')
FROM inserted;