none
Crear un Store con una Vista y Crear una Tarea. RRS feed

  • Pregunta

  • Primero Que nada muchas gracias por su ayuda, Les platico un poco.

    Tengo una Vista que se llama Guías... y un Store que se llama insert_guias ahorita se ejeuctan mandándose llamar de un programa... quiero hacer lo siguiente...Meterlas los dos en un Store y crear una terea en SQL para que se ejecute Diario cada 5 minutos...

    La Vista Guía Me arroja el siguiente resultado.

    Ejemplo


    La idea es mientras la vista guías arroje un resultado Diferente de null  se ejecute el strore insert_guias  
    ...tengo esta idea pero me marca error..

    USE  Tabla;
    GO
    WHILE (select TOP 1 (hawb) from Guias) IS NOT NULL
    BEGIN
    Exec (inser_guias,hawb)
    END
    PRINT 'Bien';

    Muchas gracias por la ayuda..


    HB


    • Editado HB System jueves, 12 de julio de 2012 21:19 Corrección
    jueves, 12 de julio de 2012 21:17

Respuestas

  • Hola Miguel..

    Lo que quieres es ejecturar  el SP.

    Te recomiendo hacer lo siguiente. Ejemplo.

    Declare @hawb varchar(30), @Regitros int,@Contador int Declare @Temp table (id int IDENTITY (1,1), Hawb nvarchar(30)) ---ojo si tu proceso estan SQL SERVER 2000 NO @TEMP -- USAR TABLAS TEMPORALES #TEMP Y LUEGO DROP #TEMP AL -- FINAL DEL PROCEDIMIENTO Insert into @temp select hawb from Guias where hawb is not null set @registros=(Select Count(*) from @temp) set @contador=1

    --- Tambien.. Puedes preguntar si existe Registros antes de ejecutar las sgtes lineas de comandos

    if @registros<>0

    BEGIN

    while @Registros>=@contador Begin Select @hawb =hawb from @temp where id=@contador exec inser_guias @hawb set @contador=@contador+1 end

    END

    Con esto Puedes solucionar tu problema..

    Saludos Cordiales


    I hope Help you Leonardo Martínez



    viernes, 13 de julio de 2012 13:47

Todas las respuestas

  • Ejecute el procedimiento en la siguiente manera:

    Exec inser_guias,hawb;
    Con los parentesis es para ejecutar SQL dinamico.


    Blog: http://about.me/GeriReshef

    viernes, 13 de julio de 2012 4:18
  • lo que estás haciendo con eso es un cursor, si lo que quieres es insertar todo el contenido de la vista guias en otra tabla igual podemos ayudarte a quitar ese cursor

    En cualquier caso, para poder hacer lo que dices necesitas este código, veras que he quitado el top 1 porque sin un orden tanto da que pontas top que no, estas tomando cualquiera, de esta forma también tomas cualquiera de ellos. usa top junto con order by si quieres un orden concreto.

    Declare @hawb varchar(30)

    select  @hawb=hawb from Guias

    while @hawb is not nutl

    begin

      exec inser_guias @hawb

    select  @hawb=hawb from Guias

    end


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    viernes, 13 de julio de 2012 9:08
    Moderador
  • Hola Miguel..

    Lo que quieres es ejecturar  el SP.

    Te recomiendo hacer lo siguiente. Ejemplo.

    Declare @hawb varchar(30), @Regitros int,@Contador int Declare @Temp table (id int IDENTITY (1,1), Hawb nvarchar(30)) ---ojo si tu proceso estan SQL SERVER 2000 NO @TEMP -- USAR TABLAS TEMPORALES #TEMP Y LUEGO DROP #TEMP AL -- FINAL DEL PROCEDIMIENTO Insert into @temp select hawb from Guias where hawb is not null set @registros=(Select Count(*) from @temp) set @contador=1

    --- Tambien.. Puedes preguntar si existe Registros antes de ejecutar las sgtes lineas de comandos

    if @registros<>0

    BEGIN

    while @Registros>=@contador Begin Select @hawb =hawb from @temp where id=@contador exec inser_guias @hawb set @contador=@contador+1 end

    END

    Con esto Puedes solucionar tu problema..

    Saludos Cordiales


    I hope Help you Leonardo Martínez



    viernes, 13 de julio de 2012 13:47
  •  

       Hola Leonardo Martinez Muchas Gracias por la ayuda.. Estoy Utilizando SQL 2005....  Exactamente es lo que queria hacer.. Solo dos preguntas mas.. ese procedimiento va en un Store?  y dos... Como puedo Crear una Tarea para que me ejecute ese Store Cada cierto tiempo???

    saludos y Gracias!!


    HB

    viernes, 13 de julio de 2012 14:20
  • Hola Hb System..

    1.- Lo puedes hacer en un SP = store Procedure.

    2.- Crear un Job.. y  Pon el calendario deseado..

    3.- También lo puedes Ejecutar con Batch File.. Y luego Usando Tareas Programadas de Windows.

    Saludos cordiales


    I hope Help you Leonardo Martínez




    viernes, 13 de julio de 2012 14:21
  • Hola HB SYSTEM..

    Proceso para el Bath file es el siguiente..:

    1.- Crear un Script.sql  y lo graba en la ejemp.:  

    USE DB
    EXEC SP_YOU_SP_ANY
    GO 

    2.- Luego en el Batch file :

    Seria..

    Echo on 
    Echo Corriendo mi Proceso
    sqlcmd -i script.sql -b -o D:\Ruta\Salida.txt
    

    Saludos Cordiales.


    I hope Help you Leonardo Martínez

    viernes, 13 de julio de 2012 18:07
  • Leonardo- me parece que se debe mencionar el servidor,
    a menos que ejecutas el Script directamente en el servidor.

    Blog: http://about.me/GeriReshef

    viernes, 13 de julio de 2012 18:15
  • Leonardo- me parece que se debe mencionar el servidor,
    a menos que ejecutas el Script directamente en el servidor.

    Blog: http://about.me/GeriReshef

    OKEY.. Geri.. buen Aclarando..

    En este caso estoy deduciendo que el servidor de la DB es Nativo.. (o sea en el mismo Lugar donde se corre el Script)

    Gracias Geri..


    I hope Help you Leonardo Martínez


    viernes, 13 de julio de 2012 18:34