Este documento describe diferentes comandos básicos de SQL para insertar filas en una tabla, incluyendo INSERT, INSERT MULTIPLE, INSERT TOP, INSERT DEFAULT VALUES, INSERT SELECT y la cláusula OUTPUT. Proporciona ejemplos de sintaxis y uso para cada comando.
2. Insert: Inserta filas en una tabla.
Sintaxis básica:
INSERT [INTO] Tabla [(campo1, campo2, .., campoN)] VALUES (valor1, valor2, ...,
valorN)
Ejemplos:
Este como se ve está agregando ciertas características a una tabla, en este caso
a una base de datos de una librería que tenga una tabla llamada nombre_libro y
en la cual ya sepamos los datos que vendrán.
1.- Insert into info_libro(Nombre, nopaginas, edicion, cantidad)
Values(‘El libro de la selva’, 553, ‘Ed_limitada’, 100);
2.- Insert into info_libro(Nombre, nopaginas, edición, cantidad)
Values(’50 Ssombras’, 432, ‘estandar’, 120);
3. Inserción múltiple.
Permite insertar en una tabla el resultado de una consulta SELECT. De este modo se
insertarán tantas filas como haya devuelto la consulta SELECT.
Sintaxis:
INSERT [INTO] Tabla [(campo1, campo2, .., campoN)]
SELECT [(campo1[, campo2, .., campoN])|*] ...
Ejemplo:
Insert into info_libro(Nombre, nopaginas, edición, cantidad)
Values (’50 Ssombras’, 432, ‘estandar’, 120) (‘El libro de la selva’, 553, ‘Ed_limitada’,
100);
4. Insertar datos usando TOP.
Permite insertar solamente el número de registros especificados en el TOP, a partir
de los valores que regresa la sentencia select que se haya especificado.
Sintaxis:
INSERT TOP(#) [PERCENT] INTO tablaInsert[(campo1[, campo2, .., campoN])]
SELECT [(campo1[, campo2, .., campoN])|*] FROM tablaSelect ...
INSERT TOP (500) INTO info_libros
SELECT * FROM info_libros ORDER BY cantidad ASC
5. Insertar datos usando DEFAULT.
Permite que la inserción se realice con los datos por defecto establecidos para
la tabla, puede permitir incluso crear registros en blanco.
Ejemplo:
Insert into info_libro Default Values
6. Usando la sentencia SELECT con INTO.
Permite crear una tabla a partir de la estructura y valores de otra.
Sintaxis:
SELECT [(campo1[, campo2, .., campoN])|*] INTO tablaNueva FROM tabla(s) ...
Ejemplo:
SELECT * INTO info_libros FROM BD_libreria WHERE nombre=’50 Sombras’
7. Usando la clausula OUTPUT.
A partir de la versión de SQL Server 2005 disponemos de la clausula OUTPUT para recuperar los
valores que hemos insertado. Los valores obtenidos a través del INSERTED podrán ser
insertados en una variable de tabla o en una tabla base.
Ejemplo:
CREATE PROCEDURE sp_Pruebalibreria
AS
DECLARE @info_ libros Insertado TABLE
( Nombre varchar(120),
Nopaginas int,
Edicion varchar(30),
cantidad int,
)
INSERT INTO info_libros
OUTPUT INSERTED.* INTO @ info_libros_Insertado
Values (‘El libro de la selva’, 553, ‘Ed_limitada’, 100);
SELECT * FROM @ info_libros