Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Crear un trabajo periódico

Estas en el tema de Crear un trabajo periódico en el foro de SQL Server en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 08/01/2007, 06:41
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
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!
  #2 (permalink)  
Antiguo 02/04/2007, 02:23
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
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.
  #3 (permalink)  
Antiguo 02/04/2007, 22:54
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
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
  #4 (permalink)  
Antiguo 03/04/2007, 00:28
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
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.
  #5 (permalink)  
Antiguo 05/04/2007, 02:53
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
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.
  #6 (permalink)  
Antiguo 12/04/2007, 00:53
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
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!
  #7 (permalink)  
Antiguo 12/04/2007, 13:26
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
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
  #8 (permalink)  
Antiguo 13/04/2007, 00:22
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
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!!!
  #9 (permalink)  
Antiguo 13/04/2007, 02:56
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
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!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:18.