SQL - solo para superhipermega expertos

 
Vista:

solo para superhipermega expertos

Publicado por Mario Barajas (11 intervenciones) el 28/03/2003 00:57:58
hola que tal:

estoy tratando de copiar los registros de una tabla a otra nueva, el problema es que los campos no coiciden ni en diseño ni en los datos mismos.
ejemplo
mientras yo tengo mi tabla asi
cteNoCliente
cteNombre
cteCalle
cteCol
cteRFC
la otra tabla aparece de la siguiente forma
num_cli
dom_cli
nom_cli
tel_cli
como puedo hacer para copiar la información con codigo???
ojala haya sido explicito y me puedan ayudar
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

RE:solo para superhipermega expertos

Publicado por Isaías Islas (5072 intervenciones) el 28/03/2003 02:32:25
No soy MEGAEXPERTO, pero....¿que pasa con las columnas que NO se relacionan?., pongo la relación como creo que es:

Tabla_A Tabla_B
-------------------------------------------------
cteNoCliente num_cli
cteNombre nom_cli
cteCalle dom_cli
cteCol
cteRFC
tel_cli
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

RE:solo para superhipermega expertos

Publicado por Luis Tamez (14 intervenciones) el 28/03/2003 03:03:15
yo tampoco soy HIPERSUPERBLABLABLA...pero creo que no se necesita serlo.

Por lo que entiendo, debes de hacer un cursor que cargue los datos que necesitas de la tabla origen y asignarles variables a cada uno de los datos y despues recorrer el cursor haciendo un

insert into tabladestino (campo1,campo2,campo3)
values (var1,var2,var3)

pero es obvio que si un campo es numerico en una tabla y caracter en otro no se van a poder insertar, a menos que utilices el comando

convert(int,variable) ó convert(varchar,variable)... y asi para cada dato que necesites convertir...

espero te sirva
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

RE:solo para superhipermega expertos

Publicado por Isaías Islas (5072 intervenciones) el 28/03/2003 17:14:36
Hola Luis

El insert es simple, no necesita utilizar CURSORES, lo unico es que una tabla tiene mas columnas que la otra, ¿habria que colocar DEFAULTS?., esa es la duda que tengo.

INSERT INTO MyTablaA (cteNoCliente, cteNombre, cteNombre, cteCalle)
SELECT num_cli, nom_cli, nom_cli , dom_cli FROM MyTablaB

Que hacer con los siguientes campos?
¿cteCol?,¿cteRFC?,¿tel_cli ?
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

RE:solo para superhipermega expertos

Publicado por Candyman (3 intervenciones) el 28/03/2003 03:11:28
mmmm, creo que tengo una mejor, por que no haces un insert de la siguiente forma
insert into tabla1 select (campo1 as campodetabla1, campo2 as campodetabla1, campo3 as campodetabla3, ETC) FROM tabla2
tene en cuenta de darle el alias (AS) como el nombre de la tabla en la que vas a guardar los registros y tambien que deben ser datos del mismo tipo, espero haber sido lo suficientemente claro
Saludos!
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

RE:solo para superhipermega expertos

Publicado por Isaías Islas (5072 intervenciones) el 28/03/2003 17:16:19
Hola Candyman

La misma duda, lee la respuesta que le di a Luis, hay columnas en ambas tablas que NO tienen aparentemente una RELACIONI, ¿que hacer en ese caso?, Mario tiene la respuesta.
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

RE:solo para superhipermega expertos

Publicado por Candyman (2 intervenciones) el 28/03/2003 22:58:51
Hola, entiendo lo que me decis, pero por lo que entendi Mario quiere pasar los datos de una tabla a la otra (toda la tabla), creo que con el INSERT xx SELECT xx FROM xx que le describi antes lo podria hacer, pero logicamente solo podra volcar los datos que deben ir en la tabla nueva, si los campos estan definidos de diferente forma, se le pueden dar formato a los campos que contenga el SELECT por ejemplo si un campo de la tabla nueva es varchar de 10 puede dar formato; RIGHT(CONVERT(VARCHAR, campotablavieja),10) as campotablanueva, o de la forma en que lo necesite,
Espero haber sido claro, es solo una idea
Saludos
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

RE:solo para superhipermega expertos

Publicado por Isaías Islas (5072 intervenciones) el 29/03/2003 03:05:02
Eso yo tambien te lo entendi, pero no puedes hacer un INSERT INTO MyTabla SELECT * FROM MyOtraTabla, si ambas tablas TIENEN COLUMNAS DIFERENTES.

O sea, una tabla tiene 3 y la otra tiene 10, eso, no es posible.
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