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 ...
Simular TRUNC en SQL Server
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008
SET IDENTITY_INSERT ON y LinqToSQL
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#
SQL dinámico en Transact SQL
Cursores en Transact SQL
Triggers en Transact SQL


Insertar datos en Transact SQL

Inserción individual de filas.

    Para realizar la insercción individual de filas SQL posee la instrucción INSERT INTO.La insercción individual de filas es la que más comunmente utilizaremos. Su sintaxis es la siguiente:


INSERT INTO
<nombre_tabla>
[(<campo1>[,<campo2>,...])]
values
(<valor1>,<valor2>,...);

    El siguiente ejemplo muestra la inserción de un registro en la tabla PRECIOS.


INSERT
INTO PRECIOS

(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)

VALUES

(10, getdate(),getdate()+30, 1)

Insertción múltiple de filas.

    También es posible insertar en una tabla el resultado de una consulta SELECT. De este modo se insertarán tantas filas como haya devuelto la consulta SELECT.

    El siguiente ejemplo muestra la inserción multiple de filas.


INSERT
INTO PRECIOS

(PRECIO,

FX_INICIO,

FX_FIN,

CO_PRODUCTO)

SELECT PRECIO_UNIDAD,

getdate(),

getdate() + 30,

CO_PRODUCTO

FROM DETALLE_PEDIDO

Inserción de valores por defecto.

    También podemos forzar a que la insercción se realice con los datos por defecto establecidos para la tabla (o null si no tienen valores por defecto).


INSERT
INTO PRECIOS DEFAULT VALUES

    En SQL Sever podemos marcar un campo de una tabla como autonumérico (identity), cuando insertamos un registro en dicha tabla el valor del campo se genera automaticamente. Para recuperar el valor generado disponemos de varios métodos:

  • Utilizar la funcion @@identity, que devuelve el último valor identidad insertado por la transaccion:


DECLARE
@Codigo int


INSERT
INTO PRECIOS

(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)

VALUES

(10, getdate(),getdate()+30, 1)


set
@Codigo = @@Identity


PRINT
@Codigo

El uso de @@Identity no siempre es válido, ya que al devolver el úlitmo valor identidad insertado por la transacción, no nos garantiza que el valor haya sido insertado en la tabla que nos interesa (por ejemplo la tabla podría tener un trigger que insertara datos en otra tabla con campos identidad).

  • En este tipo de escenarios debemos utilizar la función, SCOPE_IDENTITY.


DECLARE
@Codigo int


INSERT
INTO PRECIOS

(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)

VALUES

(10, getdate(),getdate()+30, 1)


SET
@Codigo = SCOPE_IDENTITY()

PRINT @Codigo

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.

    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_INSERTADAS TABLE

( CO_PRECIO int,

PRECIO decimal,

FX_INICIO datetime,

FX_FIN datetime,

CO_PRODUCTO int

)

INSERT INTO PRECIOS

(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)

OUTPUT INSERTED.* INTO @FILAS_INSERTADAS

VALUES

(10, getdate(),getdate()+30, 1)

 

SELECT * FROM @FILAS_INSERTADAS


Inicio | Tutorial de Transact SQL Operaciones con conjuntos.Tutorial de Transact SQLActualizar datos en Transact SQL Versión para imprimir Foros de consulta

 
Me gusto mucho este tutorial m... por Gaby
Respuesta recibida el [25/07/2007 07:15:33]
Me gusto mucho este tutorial me parece q trata los temas justos y los enfoca adecuadamente, ademàs d ser facil d entender.

 
muy buen tutorial por Pablo
Respuesta recibida el [17/09/2007 07:48:31]
queria agradecer por el material que publican. simple y didactico. muy bueno

 
Está muy bien por Ivan
Respuesta recibida el [22/11/2007 10:28:57]
Me ha servido de mucho

 
me parecio excelente por didijoca5
Respuesta recibida el [04/03/2008 11:06:47]
gracias por la ayuda me sisrvio bastante

 
Buen tutorial por ALEX
Respuesta recibida el [08/08/2008 12:28:46]
Me parece excelente material solo que queda una duda, como puedo recoger el valor que me genera el OUTPUT desde mi aplicacion? En este caso utilizo VB.NET. Gracias por el apoyo

 
sean mas especificos sin tecni... por Anónimo
Respuesta recibida el [03/10/2009 12:07:39]
sean mas especificos sin tecnicismos


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

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial de Transact SQL Operaciones con conjuntos.Tutorial de Transact SQLActualizar datos en Transact SQL Versión para imprimir

Insertar datos en Transact SQL
Autor: Pedro Herrarte Sánchez
Visitas: 30335 Fecha de publicación: 21/07/2007
Pedro Herrarte, es consultor independiente, ofreciendo servicios 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: 86 | Comentarios: 2 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 791 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 739 | Comentarios: 3 | Archivo: Articulos
Visitas: 3134 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14487 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1474 | Comentarios: 3 | Archivo: Articulos
Visitas: 690 | Comentarios: 2 | Archivo: Articulos
Visitas: 368 | Comentarios: 0 | Archivo: Articulos
Visitas: 2006 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 135 26/01/2010
pensiones por eduard ... [Visual Basic 6.0] 0 11/03/2010
Manual Visual Studio.NET por Shiko ... [Visual Basic .NET] 41 26/10/2006
cap de setmana genial por ramón ... [Java] 0 11/03/2010
cetificado de pension por RICARDDO RAFAEL SOLANO ORZCO ... [Actualidad] 0 11/03/2010
solicitud de aifiliacion a porvernir por julios ... [Actualidad] 2 11/03/2010
Solicitar el certificado de pensiones de Abelardo Alfonso Serrano Banegas C.C. 18 971 771 de Curumani Cesar por Marta ... [Actualidad] 0 11/03/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 50 10/02/2010
cerificado fondo horizonte de pensiones y cesantias por carlos fideligno torres herrera ... [Actualidad] 146 18/01/2010
certificado de afiliación de pensiones y cesantias por secre ... [Actualidad] 109 28/01/2010
certificado de fondos de pensiones horizonte por mona ... [Actualidad] 5 03/03/2010
Certificado de afiliacion AFP (PENSIONES) Horizonte por Sandris ... [Actualidad] 68 30/01/2010

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 ...
14/07/2006 Tablas PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Introducción SQL    forma parte de...Tutorial SQL
18/10/2005 Enviar emails a través de un servidor SMTP autenticado con Java
11/12/2006 Novedades de C# 2.0    forma parte de...Tutorial C#
11/12/2006 Genéricos    forma parte de...Tutorial C#
11/12/2006 Tipos parciales    forma parte de...Tutorial C#
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL
01/01/2007 Iteradores    forma parte de...Tutorial C#
23/05/2006 Cursores en PL/SQL    forma parte de...Tutorial PL/SQL

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]