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.
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
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
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