1

我需要编写一个触发器,在创建记录后将第 2 列中的值设置为第 1 列中的值。

这是我到目前为止所拥有的:

create trigger update_docindex2_to_docid
ON dbo.TABLENAME
after insert
AS BEGIN
 set DOCINDEX2 = DOCID     
END;

我回答了我自己的问题,我坐下来思考了足够长的时间......

这似乎很简单。我担心我会破坏某些东西,因为我没有可以识别正确记录的 where 条件。我希望在数据库中创建记录后将 docindex2 更新为新创建的 DOCID。docid 是 pkid。

任何想法/建议表示赞赏....

4

1 回答 1

1

你在寻找这样的东西吗?

CREATE TABLE Table1 (docid INT IDENTITY PRIMARY KEY, docindex2 INT);

CREATE TRIGGER tg_mytrigger
ON Table1 AFTER INSERT
AS
UPDATE t
   SET t.docindex2 = t.docid
  FROM Table1 t JOIN INSERTED i
    ON t.docid = i.docid;

INSERT INTO Table1 (docindex2) VALUES(0), (0);

插入后表格的内容

| 文档 | 文档索引2 |
---------------------
| 1 | 1 |
| 2 | 2 |

这是SQLFiddle演示

于 2013-07-04T03:27:46.567 回答