none
Añadir columna a tabla en posición determinada. RRS feed

  • 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
    viernes, 3 de noviembre de 2017 14:05

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.

    martes, 7 de noviembre de 2017 17:24

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.
    viernes, 3 de noviembre de 2017 14:47
  • 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
    viernes, 3 de noviembre de 2017 15:40
  • 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.
    viernes, 3 de noviembre de 2017 16:23
  • 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.

    lunes, 6 de noviembre de 2017 15:16
  • 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.
    lunes, 6 de noviembre de 2017 17:17
  • 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

    lunes, 6 de noviembre de 2017 21:12
  • 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.
    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
    martes, 7 de noviembre de 2017 15:35
  • 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, es por estética no puedo agregar una nueva columna despues de las columnas de auditoria.Tiene que ser antes.
    martes, 7 de noviembre de 2017 15:36
  • 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.

    martes, 7 de noviembre de 2017 16:49
  • Hola, Alberto gracias or todas tus respuestas ,en que momento debo capturar la traza al hacer un insert?
    martes, 7 de noviembre de 2017 17:19
  • 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.

    martes, 7 de noviembre de 2017 17:24