Hasta ahora hemos trabajado con tablas que tenían datos introducidos y cuando nos ha hecho falta hemos añadido nuevos datos en las mismas y hemos modificado algún dato directamente desde el entorno de SSMS, en este tema veremos cómo hacerlo con instrucciones de Transact-SQL.
Seguimos en el DML porque las instrucciones que veremos actúan sobre los datos de la base de datos no sobre su definición y tenemos tres tipos de operaciones posibles:
Una forma de insertar datos es crear una tabla que incluya los datos de otra. Esta es la sentencia SELECT... INTO.
SELECT ... INTO nb_NuevaTabla FROM ...
nb_NuevaTabla es el nombre de la tabla que se va a crear, si en la base de datos ya hay una tabla con ese nombre, el sistema genera un error y no se ejecuta la sentencia.
En la nueva tabla las columnas tendrán el mismo tipo y tamaño que las columnas del resultado de la SELECT, se llamarán con el nombre de alias de la columna o en su defecto con el nombre de la columna, pero no se transfiere ninguna otra propiedad del campo o de la tabla como por ejemplo las claves e índices.
Si retomamos el ejemplo del punto anterior:
CREATE TABLE trabajo (col1 INT, col2 VARCHAR(20), col3 MONEY); INSERT INTO trabajo SELECT oficina, ciudad, ventas FROM oficinas WHERE region = 'Centro';
Se podría obtener el mismo resultado con una sola instrucción:
SELECT oficina AS col1, ciudad AS col2, ventas AS col3 INTO trabajo FROM oficinas WHERE region = 'Centro'
Si se tiene poca experiencia en esta instrucción, lo mejor es primero escribir la SELECT que permite obtener las filas a insertar y una vez la tenemos añadir la cláusula INTO destino delante de FROM.
Para practicar puedes realizar este Ejercicio Insertar datos creando una nueva tabla.
La inserción de nuevos datos en una tabla, se realiza añadiendo filas enteras a la tabla, la sentencia SQL que lo permite es la orden INSERT (o también denominada INSERT INTO).
De la sentencia INSERT completa, nosotros estudiaremos la sintaxis más utilizada y estándar:
INSERT [INTO] <destino> { [(lista_columnas)] {VALUES ({DEFAULT|NULL|expresion}[ ,...n ]) |tabla_derivada } } |DEFAULT VALUES [;] <destino> ::= { [nbBaseDatos.nbEsquema. | nbEsquema.]nbTablaVista }
Con esta instrucción podemos insertar una fila de valores determinados o un conjunto de filas derivadas de otra consulta.
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.