在使用了INSERT触发器之后,向INSERTED表中添加一个值

时间:2019-11-18 08:35:53

标签: sql-server database-trigger

我的任务是在SQL Server上创建一个触发器,该触发器将对表上的每个INSERT事件作出反应。

插入触发器表的示例: enter image description here

将新行添加到插入的表中时,将触发一个触发器,该触发器将在第1行的ID中获取值并将其插入第2行的ValStr中

到目前为止,我所做的是创建一个触发器,该触发器在另一张表上执行此过程,而不是在触发器触发后插入的那个表上。

TRIGGER [dbo].[tr_tblLLAttrData]
   ON  [dbo].[LLAttrData]
   AFTER INSERT
AS 
BEGIN
    DECLARE @DataId int = (SELECT ID FROM INSERTED where AttrID = 2)
    DECLARE @Department nvarchar(255) = (SELECT ValStr FROM INSERTED where AttrID = 2)    
    DECLARE @DepCode nvarchar(255) = (  SELECT distinct Department.dep_code 
    FROM ayalon_department AS Department, dbo.LLAttrData AS Attr 
    WHERE Attr.ValStr = Department.dep_name and Attr.AttrID = 2 and Attr.ValStr = @Department)

    INSERT INTO dbo.ExternalTable
    values (@DataId + '_' @DepCode '_' + 'NTA')
END

我声明了@DataId,以便保留插入表中的值,然后将其传递给外部表。我希望将其传递到相同的插入表中。

0 个答案:

没有答案
相关问题