Sql server 2008 SQL Server触发器插入和更新操作不工作?
我正在使用SQLServer2008。我的触发器如下所示。我在两个表中插入了我没有得到任何更新的值Sql server 2008 SQL Server触发器插入和更新操作不工作?,sql-server-2008,triggers,Sql Server 2008,Triggers,我正在使用SQLServer2008。我的触发器如下所示。我在两个表中插入了我没有得到任何更新的值 CREATE TRIGGER trgAfterInserta ON AMS_33.dbo.access_event_logs AFTER INSERT,UPDATE AS declare @idams bigint; declare @id int; declare @uid nvarchar(20);
CREATE TRIGGER trgAfterInserta ON AMS_33.dbo.access_event_logs
AFTER INSERT,UPDATE
AS
declare @idams bigint;
declare @id int;
declare @uid nvarchar(20);
declare @tentry datetime;
declare @tsn nvarchar(20);
declare @evtid nvarchar(20);
declare @audit_action nvarchar(300);
select @idams = i.id from inserted i;
select @id = max(Rownumber) + 1 from TAV3.dbo.access_event_logs ;
select @uid =i.USERID from inserted i;
select @tentry =i.TIMESTAMPS from inserted i;
select @tsn =i.TERMINALSN from inserted i;
select @evtid =i.EVENTID from inserted i;
set @audit_action='Inserted Record -- After Insert.';
set @tentry = dateadd(hh,3,@tentry);
insert into TAV3.dbo.access_event_logs
(Rownumber,Userid, Timeentry, Eventid, Terminalsn, Notes)
values(@id,@uid, @tentry, @evtid, @tsn, @audit_action);
update AMS_33.dbo.access_event_logs set Calculated=1 where id= @idams;
去
表1 AMS_33.dbo.access_事件日志
id bigint Unchecked
USERID nvarchar(50) Unchecked
DEPARTMENT nvarchar(50) Unchecked
TIMESTAMPS datetime Unchecked
EVENTID nvarchar(50) Unchecked
TERMINALSN nvarchar(50) Unchecked
ACCESSMETHOD nvarchar(255) Unchecked
REMARKS nvarchar(255) Unchecked
TERMINALIP nvarchar(50) Unchecked
PHOTO image Checked
PHOTOSIZE int Unchecked
RECLOGDTM datetime Unchecked
RECLOGFROMIP nvarchar(50) Unchecked
LOCALTIMESTAMP datetime Unchecked
PhotoPath nvarchar(50) Checked
Calculated int Checked
表2 TAV3.dbo.access\u事件日志
Rownumber int Unchecked
Userid nvarchar(20) Unchecked
Timeentry datetime Unchecked
Eventid nvarchar(20) Checked
Terminalsn nvarchar(20) Unchecked
Calculated int Checked
Notes nvarchar(300) Checked
这里没有执行插入或更新吗 您假设在以下语句中只插入或更新了一行 从插入的i中选择@idams=i.id
这可能是错误的。然后,这些语句将永远不会到达insert(插入)假设在以下语句中只插入或更新了一行 从插入的i中选择@idams=i.id
这可能是错误的。然后,这些语句将永远无法到达insert(插入)1)您假设只插入或更新了一行,这可能是错误的。如果我正确读取了您的代码,您将由此创建一个循环?!您在该表上有一个更新,其中有一个触发器,您的触发器将再次更新该表。您是否收到任何错误?1)您假设只插入或更新了一行,这可能是错误的。如果我正确读取您的代码,您将由此创建一个循环?!您在该表上有一个更新,其中有一个触发器,您的触发器将再次更新该表。是否有任何错误?请使用select,即insert(字段a,字段B)将inserted.foo作为字段a,inserted.bar作为字段B从inserted中选择insert.foo作为字段a,inserted.bar作为字段B,而不是使用insert上的value子句,即insert(字段a,字段B)从inserted中选择inserted.foo作为字段a,inserted.bar作为字段B