T-SQL ALTER TABLE con posicion de columna

24/04/2009 - 16:09 por C a r l o s A n t o n i o | Informe spam
Saludos Compañeros,

Estoy trabajando un script para modificar varias tablas (como 25 o 30
tablas) de una base de datos como parte de un proyecto de migración. La
mayor parte de los cambios consiste en crear un campo que se constituirá
como el nuevo primary key. Para esto, por supuesto, voy a utilizar las
bondades del ALTER TABLE. El único problema es que no encuentro
documentación sobre cómo puedo añadir una columna y posicionarla antes que
las demás.

La razón es estética, pero también funcional, pues es más fácil para el
equipo de trabajo localizar los PK cuando están trabajando en el desarrollo
de la aplicación que se está planificando.

¿Es posible hacer esto? ¿Conoce alguien de un enlace que me pueda ayudar?
Tengo sospechas de que se puede hacer, pues yo lo he hecho antes en MySQL
con las cláusulas FIRST y BEFORE.

Muchas gracias por la ayuda.

C a r l o s A n t o n i o
 

Leer las respuestas

#1 Rubén Garrigós
24/04/2009 - 16:41 | Informe spam
Hola Carlos Antonio,

Hasta donde yo se no es posible mediante T-SQL modificar el orden de las
columnas. Si tan importante es para ti el tener dicha columna en orden te
recomiendo que crees una nueva la tabla con la nueva columna, hagas un
volcado de los datos y luego borres la anterior y renombras la nueva. Si
buscas por ahi igual encuentras algunos trucos para modificar el orden de la
columna modificando tablas de sistema pero yo te recomendaría que fueses por
esa vía bajo ningún concepto.

Si con las "bondades" del ALTER TABLE lo que pretendías evitar era la
lectura/escritura de los datos de la tabla... me temo que va a ser
complicado no pasar por ese trámite.


Rubén Garrigós
Solid Quality Mentors

"C a r l o s A n t o n i o" <carlvazpr¿arroba?yahoo.com> wrote in message
news:
Saludos Compañeros,

Estoy trabajando un script para modificar varias tablas (como 25 o 30
tablas) de una base de datos como parte de un proyecto de migración. La
mayor parte de los cambios consiste en crear un campo que se constituirá
como el nuevo primary key. Para esto, por supuesto, voy a utilizar las
bondades del ALTER TABLE. El único problema es que no encuentro
documentación sobre cómo puedo añadir una columna y posicionarla antes que
las demás.

La razón es estética, pero también funcional, pues es más fácil para el
equipo de trabajo localizar los PK cuando están trabajando en el
desarrollo de la aplicación que se está planificando.

¿Es posible hacer esto? ¿Conoce alguien de un enlace que me pueda ayudar?
Tengo sospechas de que se puede hacer, pues yo lo he hecho antes en MySQL
con las cláusulas FIRST y BEFORE.

Muchas gracias por la ayuda.

C a r l o s A n t o n i o

Preguntas similares