Sql-Server

尋找一個觸發器來更改插入字元串?

  • June 26, 2012

我有一個 MSSQL Server 2008 數據庫。

我的數據庫中有一些表,如下所示:

table1,table2,table3,…。

每個表都有一個 NVARCHAR(50) 欄位(Name

現在,我想更改每個 sql 查詢在該欄位中插入的字元串,

例如:

我們有想要在Name欄位中插入“範例文本”的查詢。

我想用 SQL 觸發器將其更改為“範例名稱”

sql觸發器可以嗎?如果是這樣,如何?我對 T-SQL 很天真

有沒有更好的方法來使用 SQL Server 呢?

如果您想使用觸發器,那就是您的電話,我只是建議一種不同的方法

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

例如,在您的 中table1,您可以Name column = 'Sample Name'通過以下腳本設置預設值

ALTER TABLE table1 ADD CONSTRAINT
   DF_Table1_Name DEFAULT N'Sample Name' FOR Name
GO

看下面的圖片 表列預設值


下面的程式碼向您的表添加了一個觸發器,該觸發器在插入後工作,它更新添加的名稱並將替換'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 

我建議您是否在表中有一個 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 

引用自:https://dba.stackexchange.com/questions/19915