Principales respuestas
Añadir columna a tabla en posición determinada.

Pregunta
-
buenos días , una consulta como puedo agregar una columna a una table en una posicion determinada mediante código y no por el diseñador, es necesario recrear la tabla?, preferiría no tener que hacer ello ya que tiene muchos datos.
garcias , saludos.
- Editado Augusto C viernes, 3 de noviembre de 2017 14:06
Respuestas
-
en que momento debo capturar la traza al hacer un insert?
No, debes capturar la traza al modificar el diseño de la tabla.
Deja la traza preparada, vete a la pantalla de "modificar diseño de la tabla" en SSMS, haz los cambios en el diseño, y antes de darle al OK pon en marcha la traza. Después dale al OK para qe se modifique la tabla, y luego vuelve al Profiler, detén la traza, y examina las sentencias que han llegado provenientes de SSMS.
- Propuesto como respuesta Juan MondragónModerator martes, 7 de noviembre de 2017 20:12
- Marcado como respuesta Juan MondragónModerator miércoles, 8 de noviembre de 2017 16:58
Todas las respuestas
-
Lamentablemente, es necesario volver a crear la tabla. Puedes crearla con otro nombre y con las columnas en el orden que quieras, despues hacer un "insert into lanueva(nuevoscampos) select antiguoscampos from lavieja", luego borrar la vieja, y renombrar la nueva para que se llame como la vieja. Y si, efectivamente esa operacion sera costosa si hay muchos registros; me temo que no tiene remedio.
-
Lamentablemente, es necesario volver a crear la tabla. Puedes crearla con otro nombre y con las columnas en el orden que quieras, despues hacer un "insert into lanueva(nuevoscampos) select antiguoscampos from lavieja", luego borrar la vieja, y renombrar la nueva para que se llame como la vieja. Y si, efectivamente esa operacion sera costosa si hay muchos registros; me temo que no tiene remedio.
Hola Alberto gracias por tu respuesta
y sabes como puedo crear la tabla manteniendo indices y foreign keys constraint y demas
- Editado Augusto C viernes, 3 de noviembre de 2017 15:40
-
y sabes como puedo crear la tabla manteniendo indices y foreign keys constraint y demas
- Propuesto como respuesta Juan MondragónModerator viernes, 3 de noviembre de 2017 17:24
- Votado como útil Augusto C viernes, 3 de noviembre de 2017 19:00
-
y sabes como puedo crear la tabla manteniendo indices y foreign keys constraint y demas
Puedes usar SSMS para generar el script. Haz los cambios en la vista de diseño, y captura el script que te genera. Si te dice que no lo hace porque eso implica volver a crear la tabla, entra en las Opciones desde el menú y selecciona la opción que hace que te permita salvar los cambios aunque impliquen recrear la tabla. Una vez capturado el Script, puedes ejecutarlo desde cualquier otro sitio sin necesidad de usar la vista de diseño de SSMS.
Hola, como podría capturar el script por el sql managment,graics
saludos.
-
como podría capturar el script por el sql managment,graics
- Propuesto como respuesta Juan MondragónModerator lunes, 6 de noviembre de 2017 23:19
- Votado como útil Augusto C martes, 7 de noviembre de 2017 15:34
-
La posicion de la columna no es relevante para el desempenio de tus consultas. Por que deseas hacerlo, por estetica?
AMB
Some guidelines for posting questions...
AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas -
como podría capturar el script por el sql managment,graics
Casi todas las pantallas del SSMS tienen arriba un botoncito de "Script" que te permite enviarlo al portapapeles, o a una ventana de consulta en SSMS. Por desgracia, precisamente la ventana de "Modificar Tabla" no tiene esa opción. El remedio es arrancar el Profiler, iniciar una captura de sentencias, hacer la modificación de tabla en SSMS, volver a la captura del Profiler, y tomar de ahí la sentencia. Puede parecer un poco pesado, pero solo hay que hacerlo una vez; en cuanto hayas capturado la sentencia, en lo sucesivo puedes modificar el texto que ya capturaste y ejecutarla cuantas veces sea necesario.
-
La posicion de la columna no es relevante para el desempenio de tus consultas. Por que deseas hacerlo, por estetica?
AMB
Some guidelines for posting questions...
AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas -
Si, me parece bastante pesado y largo , no se si con eso pueda tomar los multiples indices culsteres y no clustered que hay en la tabla original, ademas de los fk
Si, el conjunto de sentencias que genera SSMS es completo y cubre todos los indices de todo tipo y los fk.
Efectivamente es pesado y largo, pero unicamente hay que hacerlo una sola vez. Una vez que ya veas como son las sentencias que genera SSMS, puedes reproducirlas para cualquier otra tabla usando los mismos trucos sobre los correspondientes indices y fk.
-
-
en que momento debo capturar la traza al hacer un insert?
No, debes capturar la traza al modificar el diseño de la tabla.
Deja la traza preparada, vete a la pantalla de "modificar diseño de la tabla" en SSMS, haz los cambios en el diseño, y antes de darle al OK pon en marcha la traza. Después dale al OK para qe se modifique la tabla, y luego vuelve al Profiler, detén la traza, y examina las sentencias que han llegado provenientes de SSMS.
- Propuesto como respuesta Juan MondragónModerator martes, 7 de noviembre de 2017 20:12
- Marcado como respuesta Juan MondragónModerator miércoles, 8 de noviembre de 2017 16:58