2017-04-09 114 views
0

我正在構建個人漫畫書數據庫,並且遇到了一個SQL Server觸發器問題。更新後,插入觸發器無法工作更新SQL Server VB.net

我的主要漫畫條目(標籤)表單有一個組合框用於封面價格。

當用戶點擊提交併將漫畫插入到漫畫條目頁面上的數據庫(comic_books表)中時,我有一個觸發器將用戶輸入的封面價格添加到單獨的表(comic_prices表。),如果條目不存在。這工作得很好。

但是,我有第二個選項卡('Edit Comic'),用戶可以在其中更新已插入的使用簡單更新腳本的漫畫。 用戶可以從該選項卡更改或添加該漫畫的新封面價格。

我遇到的問題是,當用戶從「編輯漫畫」選項卡中單擊「更新漫畫」按鈕時,如果它不存在,則此新輸入的漫畫價格未插入comic_prices表中。所以它看起來像我的觸發器只發射我的插入腳本,而不是我的更新腳本。 同樣,我只有在cover_prices表中不存在條目時纔會插入,否則它什麼也不做。

請參閱下面的'AFTER UPDATE,INSERT'觸發器,如果​​您需要更多信息,請告訴我! 我欣賞任何指針或批評!

DECLARE @cover_price varchar(50) 
    select @cover_price = cover_price from comic_books   
    If exists (SELECT cover_price FROM comic_prices where cover_price = @cover_price) 
    Begin 
     Return 
    End 
    IF not EXISTS (SELECT cover_price FROM comic_prices where cover_price = @cover_price) 
    INSERT INTO comic_prices(cover_price)VALUES(@cover_price) 
+0

過了兩個星期後,我終於明白了! – Eldridge

回答

0

UPDATE 17年4月22日 兩個或兩個多星期後,我終於想通了!我結束了兩個單獨的觸發器,一個用於插入,另一個用於更新。我不停的插入相同,但是,更新如下:

DECLARE @publisher_name varchar(50) 
    --declare @comic_id bigint 
    select @publisher_name = inserted.issue_publisher from inserted 
    select @comic_id = comic_id from comic_books 
     If exists (select publisher_name from comic_publishers where publisher_name = @publisher_name) 
    Begin 
     return 
    End 
     IF not EXISTS (select publisher_name from comic_publishers where publisher_name = @publisher_name) 
     INSERT INTO comic_publishers (publisher_name)VALUES(@publisher_name)                    

我要告訴觸發尋找插入出版商!