Instrucción INSERT INTO (Microsoft Access SQL)

Se aplica a: Access 2013, Office 2013

Agrega uno o varios registros a una tabla. A esto se le denomina consulta anexada.

Sintaxis

Consulta anexada de varios registros:

INSERT INTO target [(field1[, field2[, …]])] [IN externaldatabase] SELECT [source.] field1[, field2[, ...] FROM tableexpression

Consulta anexada de un solo registro:

INSERT INTO target [(field1[, field2[, …]])] VALUES (value1[, value2[, …])

La instrucción INSERT INTO tiene estas partes:

Parte

Descripción

target

El nombre de la tabla o consulta en la cual se anexarán los registros.

field1, field2

Nombres de los campos en los que se van a anexar los datos, si siguen un argumento target, o los nombres de los campos desde los cuales obtener datos, si siguen un argumento source.

externaldatabase

La ruta de acceso a una base de datos externa. Para obtener una descripción de la ruta de acceso, consulte la cláusula IN.

source

El nombre de la tabla o consulta desde la cual se copiarán los registros.

table1xpression

El nombre de la tabla o de las tablas desde las cuales se insertarán los registros. Este argumento puede ser un único nombre de tabla o compuesto como resultado de una operación INNER JOIN, LEFT JOIN o RIGHT JOIN o una consulta guardada.

value1, value2

Los valores que se insertarán en los campos específicos del nuevo registro. Cada valor se inserta en el campo que corresponde a la posición del valor en la lista: value1 se inserta en field1 del nuevo registro, value2 en field2, y así sucesivamente. Debe separar los valores con una coma y escribir los campos de texto entre comillas (' ').

Comentarios

Puede usar la instrucción INSERT INTO para añadir un solo registro a una tabla con la sintaxis de consulta anexada de un solo registro, tal como se muestra arriba. En este caso, el código especifica el nombre y el valor para cada campo del registro. Debe especificar cada uno de los campos del registro al cual se asignará un valor, y debe especificar un valor para ese campo. Cuando no especifica cada campo, el valor predeterminado o Null se inserta para las columnas que faltan. Los registros se añaden al final de la tabla.

También puede usar INSERT INTO para anexar un conjunto de registros desde otra tabla o consulta con la cláusula SELECT … FROM, tal como se muestra más arriba en la consulta anexada de varios registros. En este caso, la cláusula SELECT especifica los campos a los que anexar la tabla target especificada.

La tabla source o target puede especificar una tabla o una consulta. Si se especifica una consulta, el motor de base de datos de Microsoft Access anexa los registros a cualquier tabla especificada por la consulta.

INSERT INTO es opcional pero, cuando se incluye, antecede a la instrucción SELECT.

Si la tabla de destino contiene una clave primaria, asegúrese de anexar valores únicos que no sean Null al campo o a los campos de claves primarias. Si no lo hace, el motor de base de datos de Microsoft Access no anexará registros.

Si anexa registros a una tabla con un campo AutoNumber y desea reenumerar los registros anexados, no incluya el campo AutoNumber en la consulta. Incluya el campo AutoNumber en la consulta si desea conservar los valores originales del campo.

Use la cláusula IN para anexar registros a una tabla en otra base de datos.

Para crear una nueva tabla, use la instrucción SELECT… INTO para crear una consulta de creación de tabla.

Para averiguar qué registros se anexarán antes de la ejecución de la consulta anexada, primero ejecute y vea los resultados de una consulta seleccionada que use los mismos criterios de selección.

Una consulta anexada copia registros de una o más tablas a otra. Las tablas que contienen los registros que anexa no se ven afectadas por la consulta anexada.

En vez de anexar registros existentes de otra tabla, puede especificar el valor para cada campo en un solo registro nuevo con la cláusula VALUES. Si omite la lista de campos, la cláusula VALUES debe incluir un valor para cada campo en la tabla; de lo contrario, la operación INSERT fallará. Use una instrucción INSERT INTO adicional con una cláusula VALUES para cada registro adicional que desee crear.

Vínculos proporcionados por la comunidad de UtterAccess. UtterAccess es el principal foro de ayuda y wiki de Microsoft Access.

Ejemplo

Este ejemplo selecciona todos los registros en una tabla hipotética New Customers y los añade a la tabla Customers. Cuando no se designan columnas individuales, los nombres de columna de tabla SELECT deben coincidir exactamente con los nombres en la tabla INSERT INTO.

    Sub InsertIntoX1() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Select all records in the New Customers table  
        ' and add them to the Customers table. 
        dbs.Execute " INSERT INTO Customers " _ 
            & "SELECT * " _ 
            & "FROM [New Customers];" 
             
        dbs.Close 
     
    End Sub

Este ejemplo muestra un nuevo registro en la tabla Employees.

    Sub InsertIntoX2() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Create a new record in the Employees table. The  
        ' first name is Harry, the last name is Washington, 
        ' and the job title is Trainee. 
        dbs.Execute " INSERT INTO Employees " _ 
            & "(FirstName,LastName, Title) VALUES " _ 
            & "('Harry', 'Washington', 'Trainee');" 
             
        dbs.Close 
     
    End Sub