我需要编写一个触发器,在创建记录后将第2列中的值设置为第1列中的值。
这是我到目前为止所做的:
create trigger update_docindex2_to_docid
ON dbo.TABLENAME
after insert
AS BEGIN
set DOCINDEX2 = DOCID
END;
我回答了自己的问题,我坐了一会儿,想了很久......
这似乎很简单。我担心我会破坏一些东西,因为我没有一个可以识别正确记录的where条件。我希望在数据库中创建记录后,将docindex2更新为新创建的DOCID。 docid是pkid。
任何想法/建议都表示赞赏....
答案 0 :(得分: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);
插入后的表格内容
| DOCID | DOCINDEX2 | --------------------- | 1 | 1 | | 2 | 2 |
这是 SQLFiddle 演示