2017-04-09 19 views
0

私は個人用の漫画本データベースを構築しており、SQL Serverトリガの1つに問題があります。更新後、挿入トリガがSQL Serverの更新時に機能しないVB.net

私のメインの漫画入り口(タブ付き)には、表紙の価格のためのコンボボックスがあります。

ユーザがサブミットをクリックし、コミックエントリページのデータベース(comic_booksテーブル)にコミックを挿入すると、ユーザが別のテーブル(comic_pricesテーブル)に入力したカバー価格を追加するトリガがあります存在しない。これはうまくいきます。

しかし、私は2番目のタブ( 'Edit Comic')を使用して、簡単な更新スクリプトを使用して既に挿入されたコミックを更新することができます。 ユーザは、この漫画の新しいカバー価格をこのタブから変更または追加することもできる。

「Comic Edit」タブから「Update 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

2週間ほどして、私はついにそれを理解しました! – Eldridge

答えて

0

UPDATE 04/22/17 2かそこら週間後、私はついにそれを考え出しました!私は2つの別々のトリガーを作りました。ひとつは挿入用で、もう一つは更新用です。私が挿入された出版社を探すためにトリガを伝えるために必要な

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)                    

:私は同じことが、しかし、更新は次のようになり、インサートを保持しました!

関連する問題