邪恶八进制信息安全团队技术讨论组's Archiver

EvilOctal 2005-6-21 00:12

[转载]表中某列被修改后触发器SQL例子

信息来源:school.123trading.com

CREATE TABLE [TEST] (
[FID] [int] IDENTITY (1, 1) NOT NULL ,
[F1] [int] NULL ,
[F2] [int] NULL ,
[F3] [int] NULL ,
CONSTRAINT [PK_TEST] PRIMARY KEY CLUSTERED
(
[FID]
) ON [PRIMARY]
) ON [PRIMARY]
GO




alter TRIGGER updatetest ON [dbo].[TEST]
FOR INSERT, UPDATE, DELETE
AS
begin
declare @F1 int,
@FID int,
@OldF1 int
if update(F1)
begin
select @OldF1=F1 from test where FID in (select FID from INSERTED)
select @FID=FID,@F1=F1 from INSERTED
PRINT fID = convert(varchar(10),@FID)
PRINT OldF1 = convert(varchar(10),@OldF1)
PRINT F1 = convert(varchar(10),@F1)
end

end



go



insert test(f1,f2,f3) values(1,2,3)
go
select * from test
go
update test set f1=11 where fid=1
go
--问题:不能获得修改前的值?

页: [1]
© 1999-2008 EvilOctal Security Team