2017-04-09 5 views
0

Ich baue eine persönliche Comic-Datenbank und habe ein Problem mit einem meiner SQL Server-Trigger.Nach dem Update, Einfügen Trigger funktioniert nicht auf Update SQL Server VB.net

Meine Haupt-Comic-Eintrag (Tabbed) -Form hat eine Combo-Box für Cover-Preise.

Wenn der Benutzer auf submit klickt und einen Comic in die Datenbank (comic_books table) auf der comics-Eintragsseite einfügt, habe ich einen Trigger, der den vom Benutzer eingegebenen Cover-Preis in eine separate Tabelle (comic_prices-Tabelle) hinzufügt ist nicht vorhanden. Das funktioniert gut.

Allerdings habe ich eine zweite Registerkarte ('Edit Comic'), wo der Benutzer einen bereits eingefügten Comic aktualisieren kann, der ein einfaches Update-Skript verwendet. Der Benutzer ist in der Lage, einen neuen Bezugspreis für den besagten Comic auf dieser Registerkarte zu ändern oder hinzuzufügen.

Das Problem, das ich habe, ist, dass, wenn der Benutzer die Schaltfläche "Comic aktualisieren" auf der Registerkarte "Comic bearbeiten", dieser neu eingegebene Comic-Preis wird nicht in der comic_prices Tabelle eingefügt, wenn es nicht existiert. Es sieht also so aus, als ob mein Auslöser nur auf mein Einfügeskript und nicht auf mein Update-Skript feuert. Wieder habe ich den Trigger nur einfügen, wenn der Eintrag nicht in der Tabelle cover_prices existiert, sonst tut es nichts.

Bitte beachten Sie meine 'AFTER UPDATE, INSERT' Trigger für diese unten und bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen! Ich schätze alle Hinweise oder Kritiken!

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

Nach zwei oder drei Wochen habe ich es endlich herausgefunden! – Eldridge

Antwort

0

UPDATE 04/22/17 Nach zwei oder so Wochen, habe ich es endlich raus! Am Ende machte ich zwei separate Trigger, einen für das Einfügen und ein weiteres für das Update. Ich hielt den Einsatz der gleichen, aber das Update wie folgt aussieht:

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)                    

ich den Abzug zu sagen, benötigen für die eingelegten Verleger zu suchen!

Verwandte Themen