gpt4 book ai didi

sql - 数据库触发器 : On Insert

转载 作者:行者123 更新时间:2023-12-04 14:11:13 25 4
gpt4 key购买 nike

这是一个简单的例子。

我想在 Table1 (Name, Age, Sex) 中插入数据。此表在插入数据时自动增加 serial#(int)。

我想在 Table1 insert 上放置一个触发器,以便在插入数据后,它从 Table1 中获取 serial#(int) > 并将 Serial#Name 放入 Table2Serial# 以及 一些其他数据Table3 中。

是否可以通过触发器?

或者,我是否应该从 table1 中选择(最后一个)Serial 并通过手动增加它在其他表上调用插入,在我曾经插入 的相同 SP 中表 1?

哪种方法更好?

编辑 1:
假设表:

Serial | UID | Name | Age | Sex | DateTimeStamp
(int | uniqueidentifier | nvarchar | smallint | nchar | DateTime )

默认 NewID() 和默认 GetDate() 作为 UIDDateTimeStamp,将 INSERTED 表在 DatetimeStamp 字段中有 Datetime-Of-Insertion?也就是说,我本来没有输入任何Serial、GUID或DatetimeStamp,它们会出现在INSERTED表中吗?


编辑 2:你能给我指点关于触发器的好书/文章吗?我读了 mastering SQL server 2005,并没有从中得到太多。谢谢!

最佳答案

当然你可以用触发器来做到这一点——比如:

CREATE TRIGGER trg_Table1_INSERT
ON dbo.Table1 AFTER INSERT
AS BEGIN
INSERT INTO dbo.Table2(SerialNo, Name)
SELECT SerialNo, Name
FROM Inserted

INSERT INTO dbo.Table3(SomeOtherCol)
SELECT SomeOtherCol
FROM Inserted
END

或者你需要在这里做的任何事情......

重要的是要了解触发器将每条语句调用一次 - 而不是每插入一行调用一次。因此,如果您有一个插入 10 行的语句,您的触发器将被调用一次,并且伪表Inserted 将包含已插入语句中的那 10 行。

关于sql - 数据库触发器 : On Insert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com