程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> (MSSQL)在數據表中設置標志開關,進行觸發器的有選擇工作

(MSSQL)在數據表中設置標志開關,進行觸發器的有選擇工作

編輯:關於SqlServer

新建表:
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表中有剛新插入的記錄保存
 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved