我正在构建一个个人漫画书数据库,但我遇到了一个SQL Server触发器问题。
我的主要漫画条目(标签式)表单有一个封面价格的组合框。
当用户点击提交并将漫画插入漫画输入页面上的数据库(comic_books表)时,我有一个触发器,将用户输入的封面价格添加到单独的表格(comic_prices表格)。不存在。这工作得很好。
但是,我有第二个标签(“编辑漫画”),用户可以在其中更新已插入的漫画,该漫画使用简单的更新脚本。 用户还可以从此选项卡更改或添加所述漫画的新封面价格。
我遇到的问题是,当用户点击“编辑漫画”标签中的“更新漫画”按钮时,如果该漫画价格不存在,则此新输入的漫画价格不会插入漫画价格表中。所以看起来我的触发器只触发我的插入脚本,而不是我的更新脚本。 同样,我有触发器只在insert_prices表中不存在条目时才插入,否则它什么都不做。
请参阅下面的“更新,插入后”触发器,如果您需要更多信息,请告诉我们! 我感谢任何指点或批评!
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 :(得分:0)
更新04/22/17 两个星期后,我终于明白了!我最终制作了两个独立的触发器,一个用于插入,另一个用于更新。我保持插入相同,但更新看起来像这样:
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)
我需要告诉触发器寻找插入的发布者!