Aggiornamento dei dati

Completato

L'istruzione UPDATE in T-SQL viene usata per modificare i dati esistenti in una tabella. UPDATE opera in un set di righe, definito da una condizione in una clausola WHERE o definito in un join. L'istruzione UPDATE include una clausola SET che specifica le colonne da modificare. La clausola SET contiene una o più colonne, separate da virgole, e fornisce nuovi valori a tali colonne. La clausola WHERE in un'istruzione UPDATE ha la stessa struttura di una clausola WHERE in un'istruzione SELECT.

Nota

È importante notare che un'istruzione UPDATE senza una clausola WHERE o un join corrispondente aggiornerà tutte le righe in una tabella. Usare l'istruzione UPDATE con cautela.

Di seguito è illustrata la sintassi di base di un'istruzione UPDATE.

UPDATE <TableName>
SET 
<ColumnName> = { expression | DEFAULT | NULL }
{,…n}
WHERE <search_conditions>;

Nell'esempio seguente viene illustrata l'istruzione UPDATE usata per modificare le note per una promozione:

UPDATE Sales.Promotion
SET Notes = '25% off socks'
WHERE PromotionID = 2;

È possibile modificare più colonne nella clausola SET. Ad esempio, l'istruzione UPDATE seguente ha modificato entrambi i campi Discount e Notes per tutte le righe in cui il nome della promozione corrisponde a "Get Framed":

UPDATE Sales.Promotion
SET Discount = 0.2, Notes = REPLACE(Notes, '10%', '20%')
WHERE PromotionName = 'Get Framed';

L'istruzione UPDATE supporta anche una clausola FROM, che consente di modificare i dati in base ai risultati di una query. Ad esempio, il codice seguente consente di aggiornare la tabella Sales.Promotion usando i valori recuperati dalla tabella Product.ProductModel.

UPDATE Sales.Promotion
SET Notes = FORMAT(Discount, 'P') + ' off ' + m.Name
FROM Product.ProductModel AS m
WHERE Notes IS NULL
    AND Sales.Promotion.ProductModelID = m.ProductModelID;