gpt4 book ai didi

sql-server - 在触发器中使用插入和删除的表

转载 作者:行者123 更新时间:2023-12-02 18:48:16 24 4
gpt4 key购买 nike

我想编写触发器来处理插入和删除的表。我已经编写了插入触发器:

CREATE TRIGGER FILL_TABLE
ON Person FOR INSERT
AS
DECLARE @ID int
SELECT @ID = p.ID
FROM Person AS p
INNER JOIN inserted AS i ON p.ID = i.ID
DECLARE @uName char(30);
SELECT @uName = SYSTEM_USER
INSERT tblOperationLog
Values
( @uName, 'user has inserted a row with ID = ' + CONVERT(nvarchar, @ID) + '',
'Insert', CURRENT_TIMESTAMP, GETDATE() )

我想编写触发器并像插入表一样使用删除的表。但我不知道怎么做。我想检索已删除行的 ID 以填充 tblOperationLog 的第二列,但我不能。我也应该使用内部连接吗?

最佳答案

仅当仅插入一行时,您的触发器才会起作用。由于 inserted 可用作表,因此您可以从该表插入并使用所有记录。我认为您正在寻找这样的东西:

CREATE TRIGGER FILL_TABLE 
ON Person FOR INSERT, DELETE
AS

INSERT tblOperationLog
SELECT SYSTEM_USER,'user has inserted a row with ID = ' + ID, 'Insert',
CURRENT_TIMESTAMP, getdate()
FROM inserted

INSERT tblOperationLog
SELECT SYSTEM_USER,'user has deleted a row with ID = ' + ID, 'Delete',
CURRENT_TIMESTAMP, getdate()
FROM deleted

关于sql-server - 在触发器中使用插入和删除的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3336319/

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