SQL - copiar datos de una tabla en otra si los campos se llaman igual

 
Vista:
sin imagen de perfil

copiar datos de una tabla en otra si los campos se llaman igual

Publicado por kanika (19 intervenciones) el 27/09/2016 12:45:31
Buenos días a tod@s,

SQL Server 2003 R2

Necesito copiar datos de una tabla en otra pero sólo los datos de los campos que se llamen exactamente igual.

campos tabla_A: campo1, campo2, campo3, campo4, campo5, campo6

campos talba_B: campo2, campo3, campo4, campo5, campo8, campo9

entonces copiaría sólo los datos del campo2, campo3, campo4 y campo5 que son los nombres idénticos

es un ejemplo resumido pues ambas tablas tienen cientos de campos y al 90% se llaman igual pero hay campos que no se llaman igual en ambas tablas y esos los quiero deshechar.

¿como sería el scrip?

Gracias anticipadas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

copiar datos de una tabla en otra si los campos se llaman igual

Publicado por Isaias (1921 intervenciones) el 27/09/2016 18:25:37
Aclara bien tu version, ya que no existe la 2003
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

copiar datos de una tabla en otra si los campos se llaman igual

Publicado por kanika (19 intervenciones) el 28/09/2016 09:03:04
hui hepuesto 2003, es la 2008. Aclarado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

copiar datos de una tabla en otra si los campos se llaman igual

Publicado por Isaias (1921 intervenciones) el 28/09/2016 19:47:36
Veamos, con los datos que me das, desarrolle el siguiente script, dime si es lo que esperas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- creo mis tablas de prueba
create table borrar1 (campo1 char(1), campo2 char(1), campo3 char(1), campo4 char(1), campo5 char(1), campo6 char(1))
create table borrar2 (campo2 char(1), campo3 char(1), campo4 char(1), campo5 char(1), campo8 char(1), campo9 char(1))
 
-- Creo un query que me formara mi INSERT
DECLARE @COLUMNAS VARCHAR(300) = ''
DECLARE @SQLString NVARCHAR(1000) = ''
select @COLUMNAS = @COLUMNAS + c.name + ','
from sys.tables t
inner join sys.columns c
on t.object_id = c.object_id
where t.name = 'borrar1' AND
c.name in (
select c.name
from sys.tables t
inner join sys.columns c
on t.object_id = c.object_id
where t.name = 'borrar2')
SET @COLUMNAS = SUBSTRING(@COLUMNAS,1, LEN(@COLUMNAS)-1)
-- SELECT @COLUMNAS
SELECT @SQLString = N'INSERT INTO borrar1 ('+@COLUMNAS+') SELECT '+@COLUMNAS+' FROM BORRAR2'
SELECT @SQLString
-- Este instruccion ejecuta el query formado, quite los comentarios
-- EXEC sp_executesql @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar