2016-05-16 12 views
0

Ich muss einen Trigger erstellen, um einen Datensatz in der zweiten Tabelle hinzuzufügen.SQL Server 2008 R2 Auslöser Identitätsspalte

  • Erste Tabelle: tab_esami
  • Zweite Tabelle: tab_valutazioni

Ich schaffe diesen Trigger:

CREATE TRIGGER [dbo].[NewTrigger] 
ON [dbo].[tab_esame] 
AFTER INSERT 
AS 
BEGIN 
    /* Trigger action goes here. */ 
    SET IDENTITY_INSERT TAB_VALUTAZIONI ON 

    INSERT INTO tab_valutazioni(tab_utenti_id, nume_colesterolo, 
           nume_hdl, nume_ldl, nume_trigliceridi, 
           nume_glicemia, data_insert) 
     SELECT 
      id_paziente, colesterolo_totale, 
      hdl, ldl, trigliceridi, 
      glicemia, data_esame 
     FROM 
      INSERTED 
END 
GO 

Aber wenn ich versuche, einen Datensatz in tab_esami ich einen Fehler einzufügen:

Error_ON_insert

Können Sie mir helfen?

Die id Spalte für tab_valutazioni ist ‚ID‘ und es ist ein Primärschlüssel mit AUTOINCREMENT Eigenschaften ..

Dank

+0

Was ist der Fehler? – Stivan

+0

Schließen Sie auch nie die Klammer nach dem Öffnen nach 'SELECT (' und Sie haben 'GO' sollte nur' GO' sein – Stivan

+0

Ich würde ** nicht ** empfehlen, irgendwelche Werte in 'tab_valutazioni.ID' einzufügen (Sie don ' (t scheint das gerade jetzt zu tun), und SQL Server sollte die Autoinkrement-ID selbst verarbeiten. In diesem Fall brauchen Sie ** die Einstellung SETIDENTITY_INSERT TAB_VALUTAZIONI ON nicht und sollten sie von Ihrem Auslöser entfernen . ** AUCH: ** wann immer du diese Einstellung ** EIN ** für einen Tisch einschaltest - vergewissere dich, dass du zurückdrehst ** OFF ** wenn du deinen Einsatz gemacht hast! –

Antwort

0

Wenn Sie diesen Code wollen richtig arbeiten Sie Identitätsspalte setzen soll. Sieh dir das an. enter image description here

+0

Sehr danke .. Ich habe vergessen, den zu betreten Identitätsspalte .. – user118258

Verwandte Themen