在第一个表中插入主键后,如何将主键插入到另一个表中?



我的数据库包含两个表;每个表在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

相关内容

  • 没有找到相关文章

最新更新