Udostępnij przez


Specifying Columns by Using the SET Clause

zestaw określa kolumn, które mają zostać zmienione, a nowe wartości dla kolumn.Wartości w określonych kolumnach są aktualizowane przy użyciu wartości określone w zestaw wszystkich wierszy spełniających warunek wyszukiwania klauzula WHERE.

W poniższym przykładzie zmienia wartość kodu pocztowego na wiersze, które odpowiadają określonym mieście.

USE AdventureWorks;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO

Jeśli nie WHERE klauzula jest określony, wszystkie wiersze są aktualizowane.Na przykład powoduje zaktualizowanie wartości w tej instrukcja Bonus, CommissionPct, a SalesQuota kolumny dla wszystkich wierszy w SalesPerson Tabela.

USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET Bonus = 6000, CommissionPct = .10, SalesQuota = NULL;
GO

Obliczona kolumna wartości mogą być obliczane i używane w operacji aktualizacji.W poniższym przykładzie podwaja się wartość ListPrice kolumna dla wszystkich wierszy w Product Tabela.

USE AdventureWorks ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO

Użyte w klauzula zestaw wyrażenia mogą być również podkwerend, które zwracają tylko jedną wartość.W poniższym przykładzie modyfikuje SalesYTD kolumna w SalesPerson tabelę, aby odzwierciedlić najnowsze sprzedaży w SalesOrderHeader Tabela. Podkwerend łącznej sprzedaży dla każdego sprzedawcy w ramach UPDATE Instrukcja.

USE AdventureWorks;
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.SalesPersonID = so.SalesPersonID
     GROUP BY so.SalesPersonID);
GO