Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [MSSQL] @@IDENTITY dopo due insert

    Ciao,
    sto provando a venire fuori da questo problema. Devo fare un INSERT in una prima Tabella1
    poi fare altri due INSERT in Tabella2 e Tabella3, dove entrambe hanno una chiave esterna che fa riferimento ad @@IDENTITY della Tabella1

    Se faccio questo funziona:

    INSERT INTO Tabella1 (ID) VALUES (valore);
    INSERT INTO Tabella2 (IDRIF, ID2) SELECT @@IDENTITY, valore

    Ma se faccio questo non va più:

    INSERT INTO Tabella1 (ID) VALUES (valore);
    INSERT INTO Tabella2 (IDRIF, ID2) SELECT @@IDENTITY, valore
    INSERT INTO Tabella3 (IDRIF, ID2) SELECT @@IDENTITY, valore

    Il primo INSERT OK, secondo INSERT OK, il terzo (ovviamente) prende la chiave dalla Tabella2, come faccio per recuperare la chiave della Tabella1?

    Grazie mille.
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    Più o meno:
    DECLARE @ID1 int:
    DECLARE @ID2 int:
    INSERT INTO Tabella1 (ID) VALUES (valore);
    SET @ID1 = (SELECT @@IDENTITY);
    INSERT INTO Tabella2 (IDRIF, ID2) VALUES (@ID1, valore);
    SET @ID2 = (SELECT @@IDENTITY);
    INSERT INTO Tabella3 (IDRIF, ID2) VALUES (@ID2, valore);

  3. #3
    Originariamente inviato da Squid70
    Più o meno:
    DECLARE @ID1 int:
    DECLARE @ID2 int:
    INSERT INTO Tabella1 (ID) VALUES (valore);
    SET @ID1 = (SELECT @@IDENTITY);
    INSERT INTO Tabella2 (IDRIF, ID2) VALUES (@ID1, valore);
    SET @ID2 = (SELECT @@IDENTITY);
    INSERT INTO Tabella3 (IDRIF, ID2) VALUES (@ID2, valore);
    Grandioso! Perdonate la mia ignoranza ma non sapevo neppure si potessero usare le varibili in SQL
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.