Cambiar datos con la cláusula SET
SET especifica las columnas que deben cambiarse y sus nuevos valores. Los valores de las columnas especificadas se actualizan con los valores indicados en SET, en todas las filas que coincidan con la condición de búsqueda de la cláusula WHERE.
En el ejemplo siguiente se cambia el valor del código postal en las filas que coinciden con una ciudad especificada.
USE AdventureWorks;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO
Si no se especifica una cláusula WHERE, se actualizan todas las filas. Por ejemplo, esta instrucción actualiza los valores de las columnas Bonus
, CommissionPct
y SalesQuota
en todas las filas de la tabla SalesPerson
.
USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET Bonus = 6000, CommissionPct = .10, SalesQuota = NULL;
GO
En una operación de actualización se pueden calcular y usar los valores de las columnas calculadas. En el ejemplo siguiente se duplica el valor de la columna ListPrice
para todas las filas de la tabla Product
.
USE AdventureWorks ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO
Las expresiones que se utilizan en la cláusula SET también pueden ser subconsultas que devuelven un único valor. En este ejemplo se modifica la columna SalesYTD
de la tabla SalesPerson
para reflejar las ventas más recientes registradas en la tabla SalesOrderHeader
. Las subconsultas suman las ventas de cada vendedor de la instrucción UPDATE
.
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
Vea también
Conceptos
Cambiar datos con la cláusula WHERE
Cambiar datos con la cláusula FROM
Limitar actualización de datos mediante TOP
Cambiar datos mediante UPDATE