Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 08-ene-2007, 05:41   #1 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Crear un trabajo periódico

Muy buenas. He diseñado un procedimiento almacenado para limpiar registros de más de 6 meses de antigüedad. Me gustaría que este procedimiento almacenado se ejecutase, por ejemplo, una vez al día. He leido que esto se puede hacer con trabajos (jobs).

El problema radica en que sólo puedo acceder al servidor SQL a través de un proyecto de Access ADP. Se puede crear este trabajo automático con Transact-SQL al igual que hago para crear los procedimientos almacenados. ¿Cuál sería la sintaxis correcta?

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Antiguo 02-abr-2007, 02:23   #2 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.007
Re: Crear un trabajo periódico

Hola.
He encontrado este tema porque yo también tengo el mismo problema, así que lo recupero y espero que alguien pase la solución.
Lo que intento es ejecutar un procedimiento almacenado desde un trabajo programado. Quiero que cada día se ejecute el procedimiento. A partir del Administrador corporativo de SQL Server creo un nuevo trabajo y en los comandos Transact-sql pongo la siguiente instrucción:
Código:
EXEC [nombre procedimiento]
No se ejecuta y me devuelve error en este paso.
¿Alguien sabe de qué va?
Gracias y saludos.
Mahalo está desconectado   Responder Citando
Antiguo 02-abr-2007, 22:54   #3 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
Re: Crear un trabajo periódico

Postear el error suele ser benéfico para los que intentan ayudarte....
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Mithrandir está desconectado   Responder Citando
Antiguo 03-abr-2007, 00:28   #4 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.007
Re: Crear un trabajo periódico

"Error en el Paso 1".

De paso diré que el procedimiento almacenado se ejecuta bien de manera independiente. El fallo se produce con el trabajo programado.

Saludos.
Mahalo está desconectado   Responder Citando
Antiguo 05-abr-2007, 02:53   #5 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.007
Re: Crear un trabajo periódico

Por si a alguien le sirve, el comando para ejecutar el procedimiento almacenado desde el trabajo programado es correcto.
Código:
EXEC [Nombre Proc.Alm.]
El caso es que, por alguna razón que desconozco, el procedimiento almacenado no se ejecuta de la misma manera que si lo hiciera independientemente. Así que he tenido que adaptarlo.
Saludos.
Mahalo está desconectado   Responder Citando
Antiguo 12-abr-2007, 00:53   #6 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Re: Crear un trabajo periódico

Gracias Mahalo por tu interés, pero me podrías responder a mi pregunta de cómo crear un trabajo sin tener acceso al "administrador corporativo" de SQL Server.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Antiguo 12-abr-2007, 13:26   #7 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
Re: Crear un trabajo periódico

¿En qué DB está seleccionado el Job? (tiene un combo para elegir la DB sobre lacual se corre la sentencia)

También puede ser posible que las credenciales del SQL Server Agent no sean suficientes para ejecutar el SP que quieres. Eso revisalo en las propiedades del Agent.

Si no tienes el Enterprise Manager es probable que puedas instalar el Web Data Administrator: http://www.microsoft.com/downloads/d...displaylang=en
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Mithrandir está desconectado   Responder Citando
Antiguo 13-abr-2007, 00:22   #8 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.007
Re: Crear un trabajo periódico

Todo está correctamente programado en el trabajo, incluso la base de datos y la tabla a la que apunta.
En mi caso, lo que fallaba (y por si alguna vez le puede servir a alguien) era una línea UPDATE en el procedimiento almacenado en la que actualizaba una fecha a la actual mediante GETDATE(). Lo que hice fue sacar esta función del CURSOR y declarar la variable @fecha_actual al principio del código del procedimiento almacenado.
Por alguna razón, esto fallaba:
Código:
DECLARE actualiza CURSOR FOR
   SELECT...
OPEN actualiza
FETCH NEXT FROM actualiza INTO ...
WHILE @@FETCH_STATUS = 0
BEGIN
   UPDATE tabla SET fecha = GETDATE() WHERE ....
FETCH NEXT FROM actualiza INTO ...
CLOSE actualiza
END
Simplemente declaré la variable @fecha_actual al principio y cambié la línea UPDATE.
Código:
DECLARE @fecha_actual datetime
...
...
   UPDATE tabla SET fecha = @fecha_actual WHERE ....
Saludos!!!
Mahalo está desconectado   Responder Citando
Antiguo 13-abr-2007, 02:56   #9 (permalink)
Mahalo tiene algunos puntos positivos de karma
 
Avatar de Mahalo
 
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.007
Re: Crear un trabajo periódico

Respondiendo a Bravenat, y si no se ha descargado el Web Data Administrator que recomienda Mithrandir, he extraído esto del la ayuda de SQL Server.
Cita:
En este ejemplo se crea un trabajo denominado Ad hoc Sales Data Backup (copia de seguridad ad hoc de datos de ventas) que notifica a janetl (por medio de un mensaje emergente del localizador, de correo electrónico o de la red) si el trabajo no tiene éxito y elimina el trabajo al concluir con éxito.

USE msdb
EXEC sp_add_job @job_name = 'Ad hoc Sales Data Backup',
@enabled = 1,
@description = 'Ad hoc backup of sales data',
@owner_login_name = 'janet1',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = 'janet1',
@notify_netsend_operator_name = 'janet1',
@notify_page_operator_name = 'janet1',
@delete_level = 1

Véase también

sp_add_jobschedule

sp_add_jobstep

sp_delete_job

sp_help_job

sp_help_jobstep

sp_update_job

Procedimientos almacenados del sistema
Investiga a partir de aquí, a ver qué tal.

Saludos!!
Mahalo está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 00:48.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93