寻找触发器来更改插入字符串?

Moh*_*yan 2 trigger sql-server-2008 sql-server t-sql

我有一个 MSSQL Server 2008 数据库。
我的数据库中有一些表,如下所示:
table1, table2, table3, ....
每个表都有一个 NVARCHAR(50) 字段 ( Name)
现在,我想更改每个 sql 查询在该字段中插入的字符串,
例如:
我们有想要在Name字段中插入“示例文本”的查询。
我想使用 SQL 触发器将其更改为“示例名称”

是否可以使用 sql 触发器?如果是这样,如何?我对 T-SQL 很幼稚
有没有更好的方法可以用 SQL Server 做到这一点?

Amm*_*arR 5

如果你想使用触发器那是你的电话,我只是建议一种不同的方法

您可以使用Default Value or Binding表格的功能

例如,在您的 中table1,您可以Name column = 'Sample Name'通过以下脚本设置默认值

ALTER TABLE table1 ADD CONSTRAINT
    DF_Table1_Name DEFAULT N'Sample Name' FOR Name
GO
Run Code Online (Sandbox Code Playgroud)

看下图 表列的默认值


下面这段代码将触发你的表中插入后的作品,它更新添加的名称,并取代'x''*'

CREATE TRIGGER ReplacingTrigger 
ON  table1  
AFTER INSERT 
AS  
BEGIN 
    UPDATE table1
    SET table1.name = replace(table1.name,'x','*')
    FROM table1
    INNER JOIN inserted i on i.name = table1.name
END 
Run Code Online (Sandbox Code Playgroud)

我建议您是否在表中有一个 ID 以在连接中使用它来查找插入的确切记录以使其准确,如下所示

CREATE TRIGGER ReplacingTrigger 
ON  table1  
AFTER INSERT 
AS  
BEGIN 
    UPDATE table1
    SET table1.name = replace(table1.name,'x','*')
    FROM table1
    INNER JOIN inserted i on i.id= table1.id
END 
Run Code Online (Sandbox Code Playgroud)