InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial de Transact SQL
Introducción a Transact SQL
Programación con Transact SQL
Fundamentos de Transact SQL
Tipos de datos en Transact SQL
Variables en Transact SQL
Equivalencia de datos de SQL Server y .NET
Operadores en Transact SQL
Estructuras de control en Transact SQL
Control de errores en Transact SQL
Consultar datos en Transact SQL
Consultas agregadas
Select FOR XML
Operaciones con conjuntos.
Insertar datos en Transact SQL
Actualizar datos en Transact SQL
Borrar datos en Transact SQL
Transacciones en Transact SQL
Procedimientos almacenados en Transact SQL
Funciones en Transact SQL
Funciones integradas de Transact SQL (I)
Triggers en Transact SQL
Cursores en Transact SQL
SQL dinámico en Transact SQL
También puedes ver ...
SQL Server 2008
LinQ To SQL - Un ejemplo sencillo
Formatear números en SQL Server
Leer un campo XML de SQL Server 2005 con C#
Funciones integradas de Transact SQL (I)
SQL dinámico en Transact SQL
Cursores en Transact SQL
Triggers en Transact SQL
Funciones en Transact SQL
Procedimientos almacenados en Transact SQL

Afiliados
La Web del programador
MundoProgramacion


 

Actualizar datos en Transact SQL

Update

    Para la actualización de datos Transact SQL dispone de la sentencia UPDATE. La sentencia UPDATE permite la actualización 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 = 'Sánchez'

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 INNER JOIN

    En ocasiones queremos actaualizar los datos de una tabla con los datos de otra (muy común para desnormalizar un modelo de datos).

    Habitualmente, usamos subconsultas para este proposito, pero Transact SQL permite la utilización de la sentencia UPDATE INNER JOIN.


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 lógicas INSERTED y DELETED.

    Las columnas con prefijo DELETED reflejan el valor antes de que se complete la instrucción UPDATE o DELETE. Es decir, son una copia de los datos "antes" del cambio.

    DELETED no se puede utilizar con la cláusula OUTPUT en la instrucción INSERT.


DECLARE
@FILAS_ACTUALIZADAS TABLE

( CO_CLIENTE int ,

NOMBRE varchar(100),

APELLIDO1 varchar(100),

APELLIDO2 varchar(100)

)

UPDATE CLIENTES

SET

NOMBRE = 'Devjoker',

APELLIDO1 = 'Herrarte',

APELLIDO2 = 'Sánchez'

OUTPUT DELETED.* INTO @FILAS_ACTUALIZADAS

WHERE CO_CLIENTE IN (10, 11, 12)

SELECT * FROM @FILAS_ACTUALIZADAS

    Las columnas con prefijo INSERTED reflejan el valor después de que se complete la instrucción 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 cláusula OUTPUT en la instrucción DELETE.


DECLARE
@FILAS_ACTUALIZADAS TABLE

( CO_CLIENTE int ,

NOMBRE varchar(100),

APELLIDO1 varchar(100),

APELLIDO2 varchar(100)

)

UPDATE CLIENTES

SET

NOMBRE = 'Devjoker',

APELLIDO1 = 'Herrarte',

APELLIDO2 = 'Sánchez'

OUTPUT INSERTED.* INTO @FILAS_ACTUALIZADAS

WHERE CO_CLIENTE IN (10, 11, 12)

SELECT * FROM @FILAS_ACTUALIZADAS

 


Inicio | Tutorial de Transact SQL Insertar datos en Transact SQLTutorial de Transact SQLBorrar datos en Transact SQL Versión para imprimir Foros de consulta


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial de Transact SQL Insertar datos en Transact SQLTutorial de Transact SQLBorrar datos en Transact SQL Versión para imprimir

Actualizar datos en Transact SQL
Autor: Pedro Herrarte Sánchez
Visitas: 8927 Fecha de publicación: 01/08/2007
Pedro Herrarte, es consultor independiente, ofreciendo sercivios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 131 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|ADO.NET
27/09/2008 Navegando ....
Visitas: 56 | Comentarios: 0 | Archivo: Articulos
Categorias: Humor
Visitas: 171 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|WCF
Visitas: 705 | Comentarios: 0 | Archivo: Articulos
Categorias: C#
Visitas: 176 | Comentarios: 0 | Archivo: Articulos
Categorias: JavaScript|ASP.NET
Visitas: 618 | Comentarios: 0 | Archivo: Articulos
Categorias: Windows XP|Linux|Windows Vista
Visitas: 404 | Comentarios: 0 | Archivo: Articulos
Categorias: Linux|BSD
Visitas: 213 | Comentarios: 0 | Archivo: Articulos
Categorias: Programación|Actualidad
18/08/2008 SQL Server 2008
Visitas: 1029 | Comentarios: 1 | Archivo: Articulos
Categorias: Transact-SQL
Visitas: 727 | Comentarios: 0 | Archivo: Articulos
Categorias: C#|ADO.NET|LinQ

Útimos temas recibidos en los foros ...
Crear una sesion de inicio por jhors ... [ASP.NET] 1 06/10/2008
Enviar email a correos cmo hotmail por Cajami ... [C#] 13 06/09/2007
Como mandar mensaje a Celular por Pako ... [C#] 23 13/03/2007
Casting por sara ... [Java] 1 06/10/2008
ORA-22288: file or LOB operation GetLength failed por heroga ... [ORACLE] 1 05/08/2008
Galeria de imagenes en Visual Web Developer por luis ... [ASP.NET] 0 06/10/2008
utilizar un ObjectDataSource por mari90 ... [ASP.NET] 4 25/10/2006
Llamar procedimientos almacenados por elmago ... [C#] 1 04/10/2008
Procesos huerfanos por cesarf283 ... [SQL Server] 2 11/07/2007
numero autogenerado por lucho ... [Visual Basic .NET] 17 10/01/2007
PUNTO DE VENTA por TIBURON ... [Access] 0 04/10/2008
Curso Visual Basic .NET en vídeo por martaz ... [Visual Basic .NET] 4 08/11/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
08/09/2007 Funciones en Transact SQL    forma parte de...Tutorial de Transact SQL
01/04/2006 Estructuras de control en PL/SQL    forma parte de...Tutorial PL/SQL
31/03/2006 Operadores en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Indices    forma parte de...Tutorial SQL
21/02/2007 BULK COLLECT    forma parte de...Tutorial PL/SQL
02/10/2008 Creando cadenas de conexión ConnectionStrings en .net 3.5 o visual Studio 2008 usando SqlConnectionStringBuilder
12/01/2006 Programación con PL/SQL    forma parte de...Tutorial PL/SQL
17/07/2006 Tipo VARRAY    forma parte de...Tutorial PL/SQL
12/01/2006 Introducción a PLSQL    forma parte de...Tutorial PL/SQL
29/05/2006 J2EE Y .NET: LA RIVALIDAD PERMANENTE

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]