Udostępnij za pośrednictwem


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