2017-04-09 98 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)                    

我要告诉触发寻找插入出版商!