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

Tarea programada en SQL Server

Estas en el tema de Tarea programada en SQL Server en el foro de SQL Server en Foros del Web. Buenos días, Tengo un script para crear la base de datos que necesito para mi proyecto. Me he ido ayudando de un script ya empezado ...
  #1 (permalink)  
Antiguo 13/06/2006, 08:53
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Tarea programada en SQL Server

Buenos días,
Tengo un script para crear la base de datos que necesito para mi proyecto. Me he ido ayudando de un script ya empezado e información que iba encontrando para ir creando el script final de mi proyecto.
Finalmente, en el script se crea una tarea programada en el servidor SQL que ejecuta un Procedimiento almacenado cada X tiempo. Bien, este es el codigo:
Código:
DECLARE @ContadorTareas int
USE msdb
SELECT @ContadorTareas = COUNT(Name) FROM SysJobs WHERE Name='EliminarCarritosAntiguos'
IF @ContadorTareas<>0 EXEC SP_Delete_Job @Job_Name='EliminarCarritosAntiguos'
EXEC SP_Add_Job
	@Job_Name = 'EliminarCarritosAntiguos',
	@Enabled = 1,
	@Notify_Level_Eventlog = 3
EXEC SP_Add_JobServer
	@Job_Name = 'EliminarCarritosAntiguos',
	@Server_Name = "(local)"
EXEC SP_Add_JobStep
	@Job_Name = 'EliminarCarritosAntiguos',
	@Step_Name = 'Step 1',
	@Command = "EXEC PA_TIENDA_CARRITOCOMPRA_EliminarAntiguos",
	@Database_Name = 'NombreBD',
	@Retry_Attempts = 2,
	@Retry_Interval = 5
EXEC SP_Add_JobSchedule
	@Job_Name = 'EliminarCarritosAntiguos',
	@Name = 'Every day at 12AM',
	@Freq_Type = 4,
	@Freq_Interval = 1,
	@Freq_SubDay_Type = 1
GO
El problema es que una vez ejecutado el script, se crean todos los objetos sin errores, pero no soy capaz de, luego, encontrar el sitio que me muestre esa tarea programada, para yo poder ver o modificar, o simplemente poder comprobar que funciona, que por cierto, no funciona. Ya que tendría que estar eliminando carritos obsoletos de la BD y no lo hace. Cada vez hay más.
Espero haberme explicado y alguien pueda iluminarme un poco.
Saludos a todos
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 10/08/2006 a las 02:59
  #2 (permalink)  
Antiguo 13/06/2006, 16:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Te recomiendo que todo eso lo hagas en un SP que mande llamar todo eso. De esa manera lo tendrás a la mano y tu Job sera una simple llamada al SP.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 14/06/2006, 01:27
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Gracias por respondre Mithrandir,
Yo creía que ese código, lo que hacía precisamente, es programar una tarea, y que esa tarea es la llamada a un SP. No es así?
Código:
@Command = "EXEC PA_TIENDA_CARRITOCOMPRA_EliminarAntiguos",
Si no es eso, podrias decirme, teniendo el SP "PA_TIENDA_CARRITOCOMPRA_EliminarAntiguos", como programar una tarea que ejecute ese SP cada dia a la hora X?
Mis conocimientosa de SQL se quedan en la creación de tablas, indices, etc. Agradezco toda ayuda posible.
Gracias a todos.
Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 14/06/2006 a las 01:33
  #4 (permalink)  
Antiguo 14/06/2006, 14:36
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Juas, no había revisado las sentencias que ejecutas.

Nunca he creado un Job desde TSQL, siempre uso la interfaz visual para hacerlo.

Si lo haces "a mano" porque tienes la versión Express o MSDE entonces es probable que el servicio de SQL Agent no exista en esas versiones. Aunque siempre tienes la opción de darle la vuelta usando una tarea programa del propio windows usando ISQL, OSQL o SQLCMD
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 15/06/2006, 03:00
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Que pasa Mithrandir... No te partas tio!
Ese codigo lo saco de un Starter Kit de ASP.NET . Ya te digo, estoy intentando comprenderlo, ya que me gustó la idea de una tarea que vaya revisando carritos obsoletos.. Pero si tienes una forma mejor de hacerlo, enrróllate.
Hay un sitio para crear visualmente la tarea? Dónde es? Es lo que me gustaria saber precisamente...
Cita:
Iniciado por moNTeZIon
pero no soy capaz de, luego, encontrar el sitio que me muestre esa tarea programada, para yo poder ver o modificar, o simplemente poder comprobar que funciona
El SP ya lo tengo. Solo falta hacer que se ejecute cada cierto tiempo, de la forma más apropiada posible. Si es mejor hacer un servicio de windows, pues un servicio, si es a traves de SQL Agent, o lo que sea... Cuál es la mejor opción? Teniendo en cuenta que luego tendré que subir el sitio a un servidor, y deberé poder crear esa tarea programada...
Graciasssss.
Saludos man.
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 15/06/2006, 16:09
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Pues visualmente lo encuentras en el Enterprise Manager -> tu servidor -> Management -> SQL Server Agent -> Jobs

Si piensas alquilar un servicio de hosting tienes razón, es probable que no tengas acceso a terminal gráfica (ni de server ni de sql). Solo asegúrate de que den soporte a Jobs, ya que estos son diferentes del simple soporte de DB.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 15/06/2006, 17:18
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Muchas Gracias por la info, Mithrandir.
Pensando en eso del soporte a jobs, y cambiando de tema, crees que podría eliminar esos registros obsoletos de alguna otra forma "elegante", en caso de no ser soportados los jobs?
cosas como cada vez que se visite la página suena un poco raro. O cada nose.. no se me ocurre un evento en que pudiera ejecutar eso.
Que opinas?
Saludos
__________________
..:: moNTeZIon ::..
  #8 (permalink)  
Antiguo 16/06/2006, 14:41
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
1) Podrías colar la tarea de limpieza de obsoletos junto con algún procedimiento que se ejecute frecuentemente, como la creación de un nuevo carrito (que aplique globalmente, no solo para el usuario que crea el carrito)

2) Crear el carrito con cookies del navegador y solo hacer las validaciones del lado del server.

3) Usar tablas temporales para almacenar el carrito, aunque dependes de que se mantenga viva su sesión (conexión de db) para que no se destruya su carrito.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #9 (permalink)  
Antiguo 18/06/2006, 07:04
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Muchas gracias por todo
Saludos.
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 19/06/2006, 03:35
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Hola de nuevo.
Un detallito mas. Me comentaste arriba como encontrar los jobs visualmente, pero creo que en ningun momento hemos especificado para qué version se trataba. Se trata de SQL 2005. He encontrado esto por ahi:
Cita:
"Microsoft SQL Server Management Studio Express (SSMSE) provides a graphical management tool for SQL Server 2005 Express Edition (SQL Server Express) instances. SSMSE can also manage relational engine instances created by any edition of SQL Server 2005. SSMSE cannot manage Analysis Services, Integration Services, SQL Server 2005 Mobile Edition, Notification Services, Reporting Services, or SQL Server Agent."
Entonces, necesito la version que no es "ESPRESS" para poder gestionar SQL Server Agent?
En tal caso, como la consigo? Tengo la version SQL 2005 Developer. Viene en algun lado de este cd? La puedo descargar?
Gracias!
__________________
..:: moNTeZIon ::..
  #11 (permalink)  
Antiguo 19/06/2006, 17:06
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Reporting Services, or SQL Server Agent.
Yep, esto acaba con tu esperanzas. Dice que el ambiente visual no lo soporta, aunque no dice nada sobre el motor en sí (que probablemente si puedas usarlo "a pie").
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #12 (permalink)  
Antiguo 20/06/2006, 01:47
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Pero pero... Por lo que entiendo, existe una versión "SQL Server Management Studio" que no es "EXPRESS", y esa, en teoria, si puede manejar esos servicios que no puedes con la "EXPRESS".
En caso que fuera así, por eso pregunto cómo conseguir la version que no es la "EXPRESS". Para poder manejarlos y ver los fucking jobs.
Me han pasado la version Standar del 2005 pero tampoco parece que venga algo parecido al management studio.
¿Alguien sabe de donde obtener el Management Studio version "NO EXPRESS"?
Graciaaaaas!
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 20/06/2006 a las 01:57
  #13 (permalink)  
Antiguo 20/06/2006, 14:10
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Si, es la herramienta administrativa de las versiones completas de SQL Server.

El disco que te prestaron la debe de tener. Solo elige en la instalación las SQL Tools (o algo así), que es lo que te va a dejar instalar (a menos que trabajes sobre una versión server de windows).

Eso entre otras cosas te instalará el Management Studio, que reemplaza tanto al Enterprise Manager como al Query Analyzer de la v2k.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #14 (permalink)  
Antiguo 21/06/2006, 03:55
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
OK! Todo solucionado Mithrandir.
Pude instalar SSMS desde ese CD en un XP. Ahora me conecto a la misma instancia de SQL2005 que antes, pero esta vez ya puedo ver el SQL Agent!
El SSMS version Exprés no me estaba eseñando el SQL Agent, aunque estuviera. Ahora ya lo veo.
Gracias por todo crack.
Nos vemos por aqui ...
__________________
..:: moNTeZIon ::..
  #15 (permalink)  
Antiguo 21/06/2006, 04:04
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
He visto que al darle encima del Trabajo, Boton derecho, Iniciar... Me ha ejecutado el StoredProcedure y me ha eliminado un monton de carritos...
Entonces esto significa que no estaba funcionando por si solo no?
He de hacer algo más para decirle que empiece a ejecutarse a partir de hoy?
El codigo para crear el job está en el primer post de este hilo. En teoria debería ejecutarse cada día a las 12:00AM...
Será que se tiene que ejecutar a las 12 de la noche, y el ordenador esté apagado a esa hora? Digamos que si el ordenador está apagado en el momento programado, aunque 2 minutos más tarde se encienda ya no ejecuta la tarea hasta las próximas 12:00AM?
Muchas gracias!
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 21/06/2006 a las 04:10
  #16 (permalink)  
Antiguo 21/06/2006, 14:30
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Crea otro Job por código como lo intentabas originalmente y revisa la parte de Schedules, deberás poder ver la programación que hiciste.

Deja que pase la fecha de corrida y revisa el histórico (click derecho -> View Job History) para ver si hay algo.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #17 (permalink)  
Antiguo 22/06/2006, 02:06
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Ah, vale. Ahi lo vi todo.
Oye, he aprendido algunas cosas nuevas contigo.
Te estoy agradecido por ello.
Saludos y cúidate!
__________________
..:: moNTeZIon ::..
  #18 (permalink)  
Antiguo 22/06/2006, 15:18
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
para esto estamos
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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.
Respuesta




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