El nombre de la columna o el número de valores suministrados no coincide con la definición de la tabla

En SQL Server, estoy intentando insertar valores de una tabla a otra utilizando la siguiente consulta:

delete from tblTable1

insert into tblTable1 select * from tblTable1_Link

Estoy recibiendo el siguiente error:

El nombre de la columna o el número de valores suministrados no coincide con la definición de la tabla.

Estoy seguro de que ambas tablas tienen la misma estructura, los mismos nombres de columna y los mismos tipos de datos.

Por favor, ayúdeme.

Solución

No tienen la misma estructura... Puedo garantizar que son diferentes

Sé que ya lo has creado... Ya existe un objeto llamado 'tbltable1' en la base de datos

Lo que puedes querer es esto (que también arregla tu otro problema):

Drop table tblTable1

select * into tblTable1 from tblTable1_Link
Comentarios (0)

para las inserciones siempre es mejor especificar los nombres de las columnas ver lo siguiente

DECLARE @Table TABLE(
        Val1 VARCHAR(MAX)
)

INSERT INTO @Table SELECT '1'

funciona bien, cambiar la tabla def a provoca el error

DECLARE @Table TABLE(
        Val1 VARCHAR(MAX),
        Val2 VARCHAR(MAX)
)

INSERT INTO @Table SELECT '1'

Msg 213, Nivel 16, Estado 1, Línea 6 Error de inserción: El nombre de la columna o el número de valores suministrados no coincide con la tabla definición.

Pero cambiando lo anterior por

DECLARE @Table TABLE(
        Val1 VARCHAR(MAX),
        Val2 VARCHAR(MAX)
)

INSERT INTO @Table (Val1)  SELECT '1'

funciona. Tienes que ser más específico con las columnas especificadas

suministrar las estructuras y podemos echar un vistazo

Comentarios (0)

el prefijo de la columna no coincide con un nombre de tabla o de alias utilizado en la consulta.

También estaba trabajando para resolver este error

Ahora he encontrado el motivo por el que se produce, sólo hay que hacer pequeños cambios en la consulta

http://sqlerrormessages.blogspot.com/2009/08/sql-server-error-messages-msg-107.html

Comentarios (0)