Home
Aggiunta di righe con INSERT e SELECT

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!

Il nostro sito utilizza i cookie

Usando il sito accetti implicitamente il loro uso. Per saperne di piu'

Approvo

Per ulteriori informazioni leggi il seguente articolo Privacy e Cookies