none
EJECUTAR SCRIPTS ALMACENADOS COMO COLUMNA RRS feed

  • Pregunta

  • Estimados todos, muy buena tarde.

    Tengo una tabla en la cual registro  scripts que se generan de forma dinámica para la generación de algunos informes

    algo como esto :

    tabla  Contenido
    -----  --------------------------------------------------
    t1     insert into #t1 (c1,c2,c3) select c1,c2,c3 from t1 
    t2     insert into #t2 (c1,c2,c3) select c1,c2,c3 from t2

    Mi pregunta es como ejecutar todos los scripts sin tener que recorrer la tabla con un ciclo.

    Es decir algo como esto, aunque se que la sentencia no es valida

    exec (data.Contenido)
    from
    TablasDatos data 

    Agradezco su apoyo.

    jueves, 24 de agosto de 2017 21:13

Respuestas

  • Algo bajo la forma que propones no es posible, por lo menos no hasta donde yo entiendo. Pienso que una forma simple resulta de concatenar las filas de la columna 'Contenido' y ejecutar el lote mediante el procedimiento de sistema sp_executesql, por ejemplo:

    DECLARE @Query nvarchar(max) = N'';
    SELECT @Query += CONCAT(t.Contenido, ';') FROM TableName t
    EXECUTE sp_executesql @Query;


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Propuesto como respuesta MarianokMVP viernes, 25 de agosto de 2017 13:48
    • Marcado como respuesta Moderador M martes, 29 de agosto de 2017 17:00
    viernes, 25 de agosto de 2017 5:36

Todas las respuestas

  • Algo bajo la forma que propones no es posible, por lo menos no hasta donde yo entiendo. Pienso que una forma simple resulta de concatenar las filas de la columna 'Contenido' y ejecutar el lote mediante el procedimiento de sistema sp_executesql, por ejemplo:

    DECLARE @Query nvarchar(max) = N'';
    SELECT @Query += CONCAT(t.Contenido, ';') FROM TableName t
    EXECUTE sp_executesql @Query;


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Propuesto como respuesta MarianokMVP viernes, 25 de agosto de 2017 13:48
    • Marcado como respuesta Moderador M martes, 29 de agosto de 2017 17:00
    viernes, 25 de agosto de 2017 5:36
  • De nuevo gracias por compartir tu experiencia ....
    viernes, 1 de septiembre de 2017 13:20