我在表 A 上有一个触发器,如下所示: 我正在尝试将插入或更新的记录从表 A 移动到表 B。表 A 中的记录被更新了很多次,并且想要跟踪每次更新。因此表 B 与表 A 完全相同,只有 3 个字段,如日期戳、用户和 id(primarykey)
ALTER TRIGGER [dbo].[catchupdate]
ON Table A
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @userid varchar(128)
declare @rolereqid varchar(128)
DECLARE @currDate DATETIME;
SET @currDate = GETDATE();
select @userid = system_user
select @rolereqid = [RoleRequestID] from TableA
Insert into TableB
(RoleRequestId, ......list...)
select * from RoleRequests
where RoleRequestId = @rolereqid
Update TableB
set User_Name1 = @userid, dateupdated = @currDate
where id = @@IDENTITY
现在插入的记录始终是表 A 的最后一条记录。我不确定我是否正确捕获了记录 ID,即表 A 中更新的记录 ID。从表 A 中选择 @rolereqid = [RoleRequestID]