Określanie kolumny danych przy użyciu klauzuli SET
ZESTAW określa kolumny zmiany i nowe wartości dla kolumn.Wartości w określonych kolumnach są aktualizowane przy użyciu wartości określonej w zestaw wszystkich wierszy spełniających warunek wyszukiwania klauzula WHERE.
Poniższy przykład zmienia wartość kodu pocztowego dla wierszy, które odpowiadają określonym mieście.
USE AdventureWorks2008R2;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO
Jeśli nie wyszczególnione klauzula, wszystkie wiersze są aktualizowane.Na przykład ta instrukcja aktualizuje wartości w Bonus, CommissionPct, i SalesQuota kolumny dla wszystkich wierszy w SalesPerson tabela.
USE AdventureWorks2008R2;
GO
UPDATE Sales.SalesPerson
SET Bonus = 6000, CommissionPct = .10, SalesQuota = NULL;
GO
Obliczona kolumna obliczone i używane w operacji aktualizacji wartości.Poniższy przykład podwaja się wartość w ListPrice kolumna dla wszystkich wierszy w Product tabela.
USE AdventureWorks2008R2 ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO
Wyrażenia używane w klauzula SET można także podkwerend, które zwracają tylko jedną wartość.Poniższy przykład modyfikuje SalesYTD kolumna w SalesPerson tabela, aby odzwierciedlić najnowsze sprzedaży rejestrowany w SalesOrderHeader tabela.Podkwerendy wartość zagregowana sprzedaży dla każdego sprzedawcy w UPDATE instrukcja.
USE AdventureWorks2008R2;
GO
UPDATE Sales.SalesPerson
SET SalesYTD = SalesYTD +
(SELECT SUM(so.SubTotal)
FROM Sales.SalesOrderHeader AS so
WHERE so.OrderDate = (SELECT MAX(OrderDate)
FROM Sales.SalesOrderHeader AS so2
WHERE so2.SalesPersonID = so.SalesPersonID)
AND Sales.SalesPerson.BusinessEntityID = so.SalesPersonID
GROUP BY so.SalesPersonID);
GO