我的数据库包含两个表;每个表在ID
列上都有主键
第一个表tbl_Person
也有一个引用第二个表tbl_Address
的外键:
tbl_Person tbl_Address
+----+------+ +----+---------+
| ID | Name | | ID | Address |
+----+------+ +----+---------+
| 1 | Jim | ---> | 1 | ..... |
| 2 | Tim | | 2 | ..... |
| 3 | Kim | | 3 | ..... |
+----+------+ +----+---------+
我现在想知道如何创建一个触发器,它将新插入的人的ID
插入到第二个表tbl_Address
中,并将tbl_Address
的所有其他属性设置为NULL。
我当前的触发器看起来像这样:
CREATE TRIGGER tg_Person
ON tbl_Person
BEFORE INSERT
AS
BEGIN
DECLARE @ID INT
SELECT @ID = SCOPE_IDENTITY()
FROM tbl_Person
INSERT INTO tbl_Address (ID)
VALUES (@ID)
END
您需要引用inserted
伪对象:
CREATE TRIGGER trg_CreatePersonAddress ON dbo.Tbl_Person
AFTER INSERT AS
BEGIN
INSERT INTO dbo.tbl_Address(ID) --Should this not be PersonID?
SELECT ID
FROM inserted;
END;
GO