TRIGGER 初探 |
尚未結案
|
will
中階會員 ![]() ![]() ![]() 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
geniustom
版主 ![]() ![]() ![]() ![]() ![]() 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
|
will
中階會員 ![]() ![]() ![]() 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
James
高階會員 ![]() ![]() ![]() ![]() 發表:10 回覆:290 積分:220 註冊:2002-07-25 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
will
中階會員 ![]() ![]() ![]() 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
Thanks
但還是語法檢查還是有錯誤訊息
:邏輯資料表inserted 和Deleted 無法更新
引言: hi, 因為你的異動對象是有問題的, 試試這樣:CREATE TRIGGER [TestTrigger] ON [dbo].[MyTable] FOR INSERT, UPDATE AS BEGIN IF UPDATE(FieldA) |
will
中階會員 ![]() ![]() ![]() 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
謝謝您的指導
小弟是想舉個簡單的例子做為學習trigger的入門
但一開始就有問題
還請您繼續指教
引言: 如果你只是想要完成您的需求 ,或許不必使用到 Trigger , 您可以採用 View or Computed column 來處理 EX1 : create view TestView as select MyTable.*, FieldA*1.05 as FieldB from MyTable EX2 : CREATE TABLE MyTable ( FieldA int, FieldB AS FieldA*1.05 ) |
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
sorry, 基本上 inserted 及 deleted 是不能異動的, 弟昨天 post 沒有注意到, 可以改為直接異動你正在更新的 table 即可, 修正如下:
CREATE TRIGGER [TestTrigger] ON [dbo].[MyTable] FOR INSERT, UPDATE AS BEGIN IF UPDATE(FieldA)其中 primary_key 是一該 table 的主鍵值, 用此作為關連來進行原始table (MyTable)和 inserted table 的比對後作為異動條件即可! |
will
中階會員 ![]() ![]() ![]() 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
經由您的解答
小弟的第一個trigger已經可以跑了 再請教一個問題
如果primary key 是由兩個欄位所組成的, 要如何處理呢?
引言: sorry, 基本上 inserted 及 deleted 是不能異動的, 弟昨天 post 沒有注意到, 可以改為直接異動你正在更新的 table 即可, 修正如下:CREATE TRIGGER [TestTrigger] ON [dbo].[MyTable] FOR INSERT, UPDATE AS BEGIN IF UPDATE(FieldA)其中 primary_key 是一該 table 的主鍵值, 用此作為關連來進行原始table (MyTable)和 inserted table 的比對後作為異動條件即可! |
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |