SQL Server触发器插入(更新插入的行)

时间:2018-05-19 17:18:15

标签: sql-server tsql triggers database-trigger

我需要在SQL Server中插入新记录(在此新记录中更新)后更新列U_DIGIT。我认为最好的方法是使用触发器在插入的记录中执行此操作,但它应仅在ORIGIN列中具有“OL”的新记录中完成。

我尝试了这段代码,但它不起作用。请帮忙。感谢。

CREATE TRIGGER tr_ol_ins_digit 
ON ol
AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    UPDATE ol
    SET u_digit = 'path\' + cast(OL.OLID as varchar(8)) + '.PDF'
    WHERE olstamp IN (SELECT olstamp 
                      FROM inserted 
                      WHERE origin = 'OL')
END
GO

1 个答案:

答案 0 :(得分:0)

我认为反斜杠是这里的问题。你需要摆脱它。

试试这个:

CREATE TRIGGER tr_ol_ins_digit 
ON  ol
AFTER INSERT
AS 
BEGIN
  SET NOCOUNT ON;

  update ol
  set u_digit = 'path\\' + cast(OL.OLID as varchar(8)) + '.PDF'
  where olstamp in (select olstamp from inserted where origin = 'OL')

END
GO