Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Replace de campos (columnas) de una tabla

Estas en el tema de Replace de campos (columnas) de una tabla en el foro de SQL Server en Foros del Web. Buenas amigos, a ver si me podeis echar una mano :) Estoy realizando unas importaciones de tablas desde un excel que me han pasado. La ...
  #1 (permalink)  
Antiguo 30/11/2010, 04:20
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Replace de campos (columnas) de una tabla

Buenas amigos, a ver si me podeis echar una mano :)
Estoy realizando unas importaciones de tablas desde un excel que me han pasado. La importación la realiza (casi) correctamente de no ser por un pequeño problemilla. Y es que en algunos campos (columnas) de la tabla creada a partir de la importación me los rodea por claudators:

[columna1]
[columna2]
(...)

Esto me viene muy mal para los procesos que aplico luego a estas tablas asi que me interesaria mucho eliminar los claudators pero no logro aclararme con el query que debo diseñar para hacerlo. Supongo que debe haber un information_schema.columns y algun replace por algun lado.

Podría alguien por favor guiarme respecto a ese problema.

Muchas gracias de antemano !

Saludos.
  #2 (permalink)  
Antiguo 30/11/2010, 07:17
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

Una de las formas es hacerlo asi...
Cita:
sp_rename 'Tabla.Columna', 'Tabla.NombreNuevoColumna','COLUMN'
Pero seria un verdadero problema en el caso de que tengas muchas tablas y estas a la vez, muchas columnas.

Me las ingeniare con alguna query aver si sale algo...
  #3 (permalink)  
Antiguo 30/11/2010, 11:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Replace de campos (columnas) de una tabla

¿de que VERSION-EDICION de SQL Server estamos hablando?
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 30/11/2010, 11:45
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

el query para seleccionar los nombres de las tablas seria:

select COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'nombretabla'

la cuestion seria que para cada resultado de este query eliminara los carácteres "[" y "]" e hiciera el update del nombre de la columna... lo mismo con una subconsulta... pero no me sale :(
  #5 (permalink)  
Antiguo 30/11/2010, 11:45
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

Cita:
Iniciado por iislas Ver Mensaje
¿de que version-edicion de sql server estamos hablando?
sql server 2008.
  #6 (permalink)  
Antiguo 30/11/2010, 11:46
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

Cita:
Iniciado por bleenk Ver Mensaje
el query para seleccionar los nombres de las tablas seria:

select COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'nombretabla'

la cuestion seria que para cada resultado de este query eliminara los carácteres "[" y "]" e hiciera el update del nombre de la columna... lo mismo con una subconsulta... pero no me sale :(
nombres de las tablas no, nombres de las columnas, perdón
  #7 (permalink)  
Antiguo 30/11/2010, 12:12
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

En ese caso, podrias usar algo como esto.-
Te lista la totalidad de las columnas que tienes en tu BD.--
pero no conosco el comando para cambiarle el nombre a la columna.

Si alguen me ayudara con ese comando, quizas podria hacer la query.-

Cita:
select SC.name
from sys.columns SC
Inner join Sys.Tables ST
On SC.Object_id=ST.Object_id
  #8 (permalink)  
Antiguo 30/11/2010, 12:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Replace de campos (columnas) de una tabla

cambiar nombre columna:

http://www.geekinterview.com/question_details/42317

Saludos!
  #9 (permalink)  
Antiguo 30/11/2010, 13:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Replace de campos (columnas) de una tabla

Si las COLUMNAS tienen en su nombre algo que las separe, es por eso que les pone [], por ejemplo: NOMBRE DE CLIENTE, quedaria [NOMBRE DE CLIENTE], ya que SQL Server no soporta nombres de columnas con separadores o nombres reservados como INSERT, DELETE, UDPATE, etc.
__________________
MCTS Isaias Islas
  #10 (permalink)  
Antiguo 01/12/2010, 02:31
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Replace de campos (columnas) de una tabla

Cita:
Iniciado por iislas Ver Mensaje
Si las COLUMNAS tienen en su nombre algo que las separe, es por eso que les pone [], por ejemplo: NOMBRE DE CLIENTE, quedaria [NOMBRE DE CLIENTE], ya que SQL Server no soporta nombres de columnas con separadores o nombres reservados como INSERT, DELETE, UDPATE, etc.
Como bien dices los claudators los pone pq hay espacios en los campos. AL final lo arreglaré mediante programación y no por SQL.


select COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'nombretabla'

a los registros de este resultado le quito los claudators, substituyo los espacios por "_" y los actualizo.

Muchas gracias a todos por vuestra ayuda !!

Etiquetas: campos, columnas, replace, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:00.