none
Recrear pasos con 3 tablas RRS feed

  • Pregunta

  • Estimados.

    Tengo 3 tablas.

    1.- Tabla A Contiene columna NombreSP (30 Filas)

    2.- Tabla B Contiene columna Genero (2 filas)

    3.- Tabla C Contiene columna Region (N filas)

    Requiero poder generar la ejecución de los procedimientos almacenados como sigue:

    Sp1 'M',Region1

    Sp1 'F',Region1

    Sp1 'M',Region2

    Etc.

    Sp2 'M',Region1

    Sp2 'F',Region1

    Etc.

    Las tablas NO tienen relación entre si.

    Por cada Región y por cada Genero ejecutar el SP.

    Es posible hacerlo SIN usar cursores ?

    Saludos.


    DBA SQL Server Santiago/Chile

    viernes, 26 de agosto de 2016 20:11

Todas las respuestas

  • Para hacerlo sin cursores habrá que hacer alguna chapuza horrible. Por ejemplo, se me ocurre lo siguiente: hacer un Select de un cross-join de las tres tablas, con una cláusula "for xml" que lo genere todo en una cadena de texto; después usar funciones de manipulación de cadena para reemplazar fragmentos del XML hasta deja un texto con una lista de EXEC con las llamadas a procedimientos, y finalmente ejecutar ese texto con un sp_executesql.

    viernes, 26 de agosto de 2016 20:21
  • Gracias Alberto.

    Por el momento mejor lo programo con cursores :)

    Saludos.


    DBA SQL Server Santiago/Chile

    viernes, 26 de agosto de 2016 20:44
  • CMAPM,

    Salvo mejor opinión, creo que no hay muchas opciones, iterar con while o mediante un cursor ejecutando los procedimientos almacenados mediante sp_executesql creo que es la salida más simple.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 26 de agosto de 2016 20:49