(MSSQL)在数据表中设置标志开关,进行触发器的有选择工作
新建表:
Create Table wTblTestExt
(
AutoId int IDENTITY,--主键
CSName char(10) NOT NULL DEFAULT (''),
IdFlag smallint NOT NULL DEFAULT (0)
)
记录插入表(有选择)
Create Table wTblTestExtLog
(
AutoId int NOT NULL DEFAULT (0),
CSName char(10) NOT NULL DEFAULT ('')
)
wTblTestExt中的字段IdFlag默认值为0,当其中置值为1时,将触发wTblTestExt中的insert后的触发器工作
触发器如下:
CREATE TRIGGER [wTblTestExt_InsAndLock] ON [dbo].[wTblTestExt]
FOR INSERT
AS
declare @LockFlag tinyint
set @LockFlag=(select IdFlag from inserted)
if @LockFlag=1
begin
insert into wTblTestExtLog (AutoId,CsName) select AutoId,CsName from inserted
end
测试1:
Insert into wTblTestExt (csName) values (‘Michael’)
wTblTestExtLog表中没有刚新插入的记录保存
测试2:
Insert into wTblTestExt (csName, IdFlag) values (‘Michael’,1)
wTblTestExtLog表中有刚新插入的记录保存