Académique Documents
Professionnel Documents
Culture Documents
Update
Para la actualizacin de datos Transact SQL dispone de la sentencia UPDATE. La
sentencia UPDATE permite la actualizacin de uno o varios registros de una nica tabla.
La sintaxis de la sentencia UPDATE es la siguiente
UPDATE <nombre_tabla>
SET <campo1> = <valor1>
{[,<campo2> = <valor2>,...,<campoN> = <valorN>]}
[ WHERE <condicion>];
El siguiente ejemplo muestra el uso de UPDATE.
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
WHERE CO_CLIENTE = 10
Un aspecto a tener en cuenta, sobre todo si has trabajado con ORACLE, es que SQL
graba los cambios inmediatamente sin necesidad de hacer COMMIT. Por supuesto
podemos gestionar nosostros las transacciones pero es algo que hay que hacer de
forma explicita con la instruccion BEGIN TRAN y que se ver en capitulos posteriores
de este tutorial.
UPDATE CLIENTES
SET
NOMBRE = FICHERO_CLIENTES.NOMBRE,
APELLIDO1 = FICHERO_CLIENTES.APELLIDO1,
APELLIDO2 = FICHERO_CLIENTES.APELLIDO2
FROM CLIENTES
INNER JOIN FICHERO_CLIENTES
ON FICHERO_CLIENTES.CO_CLIENTE = CLIENTES.CO_CLIENTE
Clausula OUTPUT
A partir de la version de SQL Server 2005 disponemos de la clausula OUTPUT para
recuperar los valores que hemos insertado. Al igual que en un trigger disponemos de
las tablas lgicas INSERTED y DELETED.
Las columnas con prefijo DELETED reflejan el valor antes de que se complete la
instruccin UPDATE o DELETE. Es decir, son una copia de los datos "antes" del
cambio.
DELETED no se puede utilizar con la clusula OUTPUT en la instruccin INSERT.
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
OUTPUT
Las columnas con prefijo INSERTED reflejan el valor despus de que se complete la
instruccin UPDATE o INSERT, pero antes de que se ejecuten los desencadenadores.
Es decir, son una copia de los datos "despues" del cambio.
INSERTED no se puede utilizar con la clusula OUTPUT en la instruccin DELETE.
UPDATE CLIENTES
SET
NOMBRE = 'Devjoker',
APELLIDO1 = 'Herrarte',
APELLIDO2 = 'Snchez'
OUTPUT