Re: [SQL ] trigger 如何判斷欄位值

看板Database作者 (艾琳是我最愛的人!!)時間16年前 (2010/01/04 20:37), 編輯推噓4(402)
留言6則, 2人參與, 最新討論串2/2 (看更多)
寫個小 Sample 給你參考 ... 直接丟下去執行就好了! --------------- if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Table1] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table2]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Table2] GO CREATE TABLE [dbo].[Table1] ( [C1] [varchar] (10) NULL , [C2] [varchar] (10) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Table2] ( [TRIGGER_INSERT] [varchar] (50) NULL ) ON [PRIMARY] GO CREATE TRIGGER [trg_for_TABLE1_UPDATE] ON [dbo].[Table1] AFTER UPDATE AS IF UPDATE (C2) BEGIN DECLARE @strOldData varchar(20) DECLARE @strNewData varchar(20) SET @strOldData = (SELECT C2 FROM DELETED) SET @strNewData = (SELECT C2 FROM INSERTED) IF @strNewData = 'A' BEGIN INSERT INTO Table2 VALUES ('UPDATE ''' + @strOldData + ''' TO ''' + @strNewData + '''') END END --- 測試 INSERT INTO Table1 VALUES ('X1','XX2') INSERT INTO Table1 VALUES ('X2','XX3') INSERT INTO Table1 VALUES ('X3','XX4') UPDATE Table1 SET C2 = 'B' WHERE C1 = 'X1' UPDATE Table1 SET C2 = 'A' WHERE C1 = 'X1' UPDATE Table1 SET C2 = 'A' WHERE C1 = 'X3' -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.128.107

01/05 21:23, , 1F
感謝D大~想問一下這句後面插入的值update是什麼意思?
01/05 21:23, 1F

01/05 21:41, , 2F
('UPDATE ''' + @strOldData + ''' TO '''
01/05 21:41, 2F

01/05 23:45, , 3F
那個只是寫個字串到Table2, 驗證功能用的不用理他 XD
01/05 23:45, 3F

01/06 20:47, , 4F
試了一下,雖然沒有跑出我要的效果,但是大概有方向,謝謝D大
01/06 20:47, 4F

01/07 01:04, , 5F
重點就是黃色的那兩句啊!! XDD
01/07 01:04, 5F

01/08 18:12, , 6F
沒錯,我後來再用 if @num=1 insert xxx values(xxx)
01/08 18:12, 6F
文章代碼(AID): #1BGU435u (Database)
文章代碼(AID): #1BGU435u (Database)