触发器不能捕捉到更新的信息现象:当更新一个表后,需要将更新的这条纪录信息保存下来.故采用了一个触发器,但在后面的执行过程中,触发器捕捉到的信息不全,本来要捕捉到四个字段的信息,现在只捕捉到三个字段.
触发器不能捕捉到更新的信息分析: 按理论是应该能捕捉到的,如果能捕捉到三个字段信息,说明此触发器已正常工作.应该是被捕捉对象的信息过时早丢失.后查是程序中在执行对该表中的该条记录进行更新后,马上删除了该条记录,造成对该纪录的其余信息捕捉不全.
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息解决: 增加更新与删除该条记录的时间差,让触发器在对该记录进行更新后有更多的时间去捕捉该条记录的相关信息.
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
--创建用于监视对TestResult表进行更新数据的触发器
触发器不能捕捉到更新的信息
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TestResult_Update]'and OBJECTPROPERTY(id, N'IsTrigger'= 1)
触发器不能捕捉到更新的信息
drop trigger [dbo].[TestResult_Update]
触发器不能捕捉到更新的信息
go
触发器不能捕捉到更新的信息
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TestResult_ServerUpdate]'and OBJECTPROPERTY(id, N'IsTrigger'= 1)
触发器不能捕捉到更新的信息
drop trigger [dbo].[TestResult_ServerUpdate]
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
GO
触发器不能捕捉到更新的信息
CREATE TRIGGER TestResult_ServerUpdate ON TestResult AFTER  UPDATE
触发器不能捕捉到更新的信息
AS
触发器不能捕捉到更新的信息
--IF UPDATE (CPH)
触发器不能捕捉到更新的信息
BEGIN
触发器不能捕捉到更新的信息
DECLARE @UniqID uniqueidentifier,
触发器不能捕捉到更新的信息
@id bigint,
触发器不能捕捉到更新的信息
@StationCode nvarchar(50),
触发器不能捕捉到更新的信息
@TestLineCode   nvarchar(50)      --检测线代码
触发器不能捕捉到更新的信息
DECLARE c3 CURSOR FOR
触发器不能捕捉到更新的信息   
--SELECT TestResult.AutoRTID,TestResult.ResultUniqID,TestResult.TestLineCode,TestResult.StationNo 
触发器不能捕捉到更新的信息
   --FROM   TestResult, deleted
触发器不能捕捉到更新的信息
   --WHERE  TestResult.AutoRTID = deleted.AutoRTID  and TestResult.StationNo= deleted.StationNo and TestResult.ResultUniqID=deleted.ResultUniqID and TestResult.TestLineCode=deleted.TestLineCode
触发器不能捕捉到更新的信息
  SELECT AutoRTID,ResultUniqID,TestLineCode,StationNo  FROM DELETED
触发器不能捕捉到更新的信息
OPEN c3
触发器不能捕捉到更新的信息
FETCH NEXT FROM c3 INTO @id,@UniqID,@TestLineCode,@StationCode
触发器不能捕捉到更新的信息
WHILE @@fetch_status = 0
触发器不能捕捉到更新的信息
BEGIN
触发器不能捕捉到更新的信息  
INSERT INTO Server_UpdateRecordTable (TableName,NumOfUniqRecord,NumOfRecordID,NumOfCheckStation,NumOfCheckGroup) VALUES('TestResult',@UniqID,@id,@StationCode,@TestLineCode)
触发器不能捕捉到更新的信息  
FETCH NEXT FROM c3 INTO @id,@UniqID,@TestLineCode,@StationCode
触发器不能捕捉到更新的信息
END
触发器不能捕捉到更新的信息
CLOSE c3
触发器不能捕捉到更新的信息
DEALLOCATE c3
触发器不能捕捉到更新的信息
END
触发器不能捕捉到更新的信息
GO
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
--测试
触发器不能捕捉到更新的信息--
select * from testresult
触发器不能捕捉到更新的信息--
select * from server_updaterecordtable
触发器不能捕捉到更新的信息

触发器不能捕捉到更新的信息
--update testresult set autortid=99999 where autortid=99999
触发器不能捕捉到更新的信息--
delete from testresult where autortid=99999
触发器不能捕捉到更新的信息--
go
触发器不能捕捉到更新的信息--
drop trigger savedel
触发器不能捕捉到更新的信息--
go
触发器不能捕捉到更新的信息--
CREATE TRIGGER savedel
触发器不能捕捉到更新的信息--
   ON testresult
触发器不能捕捉到更新的信息--
FOR DELETE
触发器不能捕捉到更新的信息--
AS
触发器不能捕捉到更新的信息--
   INSERT INTO Server_UpdateRecordTable (NumOfUniqRecord,NumOfRecordID,NumOfCheckStation)
触发器不能捕捉到更新的信息--
   SELECT resultuniqid,autortid,stationcode FROM deleted
触发器不能捕捉到更新的信息--
go
触发器不能捕捉到更新的信息

触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
--创建监视插入Server_InsertRecordTable表中数据的触发器
触发器不能捕捉到更新的信息--
用于更新Server_UpdateRecordTable 的纪录唯一编号,好用于后面的更新操作
触发器不能捕捉到更新的信息
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertRecordTable_ServerInsert]'and OBJECTPROPERTY(id, N'IsTrigger'= 1)
触发器不能捕捉到更新的信息
drop trigger [dbo].[InsertRecordTable_ServerInsert]
触发器不能捕捉到更新的信息
go
触发器不能捕捉到更新的信息
CREATE TRIGGER InsertRecordTable_ServerInsert ON Server_InsertRecordTable
触发器不能捕捉到更新的信息
FOR INSERT
触发器不能捕捉到更新的信息
AS
触发器不能捕捉到更新的信息
DECLARE 
触发器不能捕捉到更新的信息
@UniqID uniqueidentifier--在服务器上插入纪录后的生成的惟一的纪录编号 
触发器不能捕捉到更新的信息
@id bigint,                       --在检测站的数据库中的纪录编号
触发器不能捕捉到更新的信息
@StationCode    nvarchar(50),     --检测站代码 
触发器不能捕捉到更新的信息
@TestLineCode   nvarchar(50)      --检测线代码
触发器不能捕捉到更新的信息
DECLARE c2 CURSOR FOR
触发器不能捕捉到更新的信息   
SELECT Server_InsertRecordTable.NumOfUniqRecord,inserted.NumOfRecordID,inserted.NumOfCheckStation,inserted.NumOfCheckGroup
触发器不能捕捉到更新的信息   
FROM   Server_InsertRecordTable, inserted
触发器不能捕捉到更新的信息   
WHERE  Server_InsertRecordTable.NumOfUniqRecord = inserted.NumOfUniqRecord and Server_InsertRecordTable.NumOfRecordID= inserted.NumOfRecordID and Server_InsertRecordTable.NumOfCheckStation=inserted.NumOfCheckStation and Server_InsertRecordTable.NumOfCheckGroup=inserted.NumOfCheckGroup
触发器不能捕捉到更新的信息
OPEN c2
触发器不能捕捉到更新的信息
FETCH NEXT FROM c2 INTO  @UniqID@id,@StationCode,@TestLineCode
触发器不能捕捉到更新的信息
WHILE @@fetch_status = 0
触发器不能捕捉到更新的信息
BEGIN
触发器不能捕捉到更新的信息    
UPDATE  Server_UpdateRecordTable set NumOfUniqRecord=@UniqID  WHERE NumOfRecordID=@id and NumOfCheckStation=@StationCode and NumOfCheckGroup=@TestLineCode
触发器不能捕捉到更新的信息    
FETCH NEXT FROM c2 INTO @UniqID,@id,@StationCode,@TestLineCode
触发器不能捕捉到更新的信息
END
触发器不能捕捉到更新的信息
CLOSE c2
触发器不能捕捉到更新的信息
DEALLOCATE c2
触发器不能捕捉到更新的信息
GO
触发器不能捕捉到更新的信息
触发器不能捕捉到更新的信息
select top 3 * from testresult
触发器不能捕捉到更新的信息
select top 3 * from server_insertrecordtable
触发器不能捕捉到更新的信息
select * from Server_UpdateRecordTable
触发器不能捕捉到更新的信息

相关文章:

  • 2021-08-19
  • 2022-12-23
  • 2021-05-04
  • 2021-08-29
  • 2022-02-19
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-01
  • 2021-07-21
  • 2021-04-03
  • 2021-05-01
  • 2021-12-31
相关资源
相似解决方案