ann*_*nna 2 t-sql sql-server triggers
我想编写触发器来处理inserted和deleted表.我写了插入的触发器:
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() )
Run Code Online (Sandbox Code Playgroud)
我想编写触发器并使用已删除的表,就像插入的一样.但我不知道怎么做.我想检索已删除行的ID以填充tblOperationLog的第二列,但我不能.我也应该使用内连接吗?
cjk*_*cjk 12
只有插入一行时,您的触发器才有效.作为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
Run Code Online (Sandbox Code Playgroud)