Aggiunta di righe con INSERT e SELECT
Aggiunta di righe con INSERT e SELECT

MICROSOFT SQL SERVER: Query select into

Inserimento di righe con l'istruzione SELECT INTO

In questo articolo vedremo come si possono inserire dei record presi da un'altra tabella. Vedremo anche come fare nella maniera più opportuna le commit e le rollback sui nostri inserimenti.

 

Vedremo tutto con un esempio pratico che spero sia il più esaustivo possibile:

 

use MyDB;
go
begin try
    
    begin tran insertMyTable
    with mark 'insertMyTable'
        
        INSERT INTO dbo.MyDestTable
        (ID, Code, Active)
        SELECT src.ID, src.Code,
        CASE
            WHEN src.Active IS NULL THEN 0
            ELSE src.Active 
        END
        FROM dbo.MySourceTable src;

    
    commit tran insertMyTable;
end try
begin catch
    rollback tran insertMyTable;
end catch

 

Andando un po' fuori tema vorrei appuntare qui una query che ho trovato molto utile in molte situazioni:

 

SELECT ROW_NUMBER( ) OVER ( ORDER BY src.code ASC ) as ID, 
        src.Code, 
        src.Description
        FROM dbo.MyTable src;

 

E' un modo semplice per generare degli ID univoci a partire dal ROW_NUMBER (che è l'indice di riga assegnato dal DB in maniera implicita).

Buon lavoro!

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.