Procedures

11/12/2003 - 12:09 por Setnis | Informe spam
Hola a todos,

Se puede crear un procedimiento en SQL Server y que éste
se ejecute cada cierto tiempo. Por ejemplo, cada mes. No
estoy muy puesto en el tema, pero por lo que he visto el
comando que ejecuta los Procedures es el Execute.

El tema es que quiero crear una sentencia q compruebe un
campo fecha, de tal manera que si ese campo es anterior a
la fecha del sistema se eliminen esas filas de la base de
datos.

DECLARE @fecha
@fecha = getdate()
IF EXIST(SELECT * FROM tabla_name
WHERE delete_date < @fecha)
DELETE FROM tabla_name WHERE delete_date < @fecha

Creo q este seria el procedimiento, mi problema es como
hacer q esto se ejecute cada cierto intervalo de tiempo.

Espero haberme explicado con claridad.
Muchas gracias por vuestro tiempo

Preguntas similare

Leer las respuestas

#1 Pablo O. Abbate
11/12/2003 - 12:48 | Informe spam
Hola:

En SQL Server existe un servicio conocido como el Agente SQL. Entre otras
cosas, el agente puede ejecutar tareas programadas de acuerdo a una
frecuencia dada.
Lo único que debes hacer es ir al Entrerprise Manager y hacer lo siguiente:

1) Abrir el árbol de la siguiente forma:
Microsoft SQL Servers >> (Nombre del Servidor) >> Management >> Jobs
2) Botón Derecho, New Job y le especificas, entre otras cosas, el nombre del
job, la secuencia de pasos a ejecutar (donde indicarás el nombre de tu store
procedure) y, por último, la frecuencia con la cual quieres que se ejecute
el sp.

3) Fijate que el Agente SQL esté funcionando.

Espero que te sirva.

Saludos.

Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es


"Setnis" escribió en el mensaje
news:036a01c3bfd7$4fc4fe90$
Hola a todos,

Se puede crear un procedimiento en SQL Server y que éste
se ejecute cada cierto tiempo. Por ejemplo, cada mes. No
estoy muy puesto en el tema, pero por lo que he visto el
comando que ejecuta los Procedures es el Execute.

El tema es que quiero crear una sentencia q compruebe un
campo fecha, de tal manera que si ese campo es anterior a
la fecha del sistema se eliminen esas filas de la base de
datos.

DECLARE @fecha
@fecha = getdate()
IF EXIST(SELECT * FROM tabla_name
WHERE delete_date < @fecha)
DELETE FROM tabla_name WHERE delete_date < @fecha

Creo q este seria el procedimiento, mi problema es como
hacer q esto se ejecute cada cierto intervalo de tiempo.

Espero haberme explicado con claridad.
Muchas gracias por vuestro tiempo
Respuesta Responder a este mensaje
#2 Rubén Vigón
11/12/2003 - 12:49 | Informe spam
Puedes programar una tarea para que se ejecute en el momento oportuno (desde el Administrador
corporativo, seleccionando Administración > Agente de SQL Server > Trabajos > Nuevo trabajo...) o
utilizar la instrucción WAITFOR, teniendo en cuenta que:

[...] La desventaja de la instrucción WAITFOR es que la conexión de la aplicación permanece
suspendida hasta que finaliza WAITFOR. El mejor uso de WAITFOR se produce cuando se necesita
suspender el procesamiento de una aplicación o procedimiento almacenado durante un tiempo limitado.
La utilización del Agente SQL Server o de SQL-DMO para programar una tarea constituye un método más
adecuado para ejecutar una acción a una hora determinada del día

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
Respuesta Responder a este mensaje
#3 Setnis
12/12/2003 - 08:01 | Informe spam
Muchas gracias por la información, creo que es la mejor
solución.

He estado probando en casa con SQL Server 2000, el
problema es q lo tengo que realizar sobre una máquina
servidor donde esta instalado SQL Server 6.5, ¿sabes
decirme si esta versión tb soporta lo de los Jobs?

Gracias de nuevo.

Hola:

En SQL Server existe un servicio conocido como el Agente


SQL. Entre otras
cosas, el agente puede ejecutar tareas programadas de


acuerdo a una
frecuencia dada.
Lo único que debes hacer es ir al Entrerprise Manager y


hacer lo siguiente:

1) Abrir el árbol de la siguiente forma:
Microsoft SQL Servers >> (Nombre del Servidor) >>


Management >> Jobs
2) Botón Derecho, New Job y le especificas, entre otras


cosas, el nombre del
job, la secuencia de pasos a ejecutar (donde indicarás el


nombre de tu store
procedure) y, por último, la frecuencia con la cual


quieres que se ejecute
el sp.

3) Fijate que el Agente SQL esté funcionando.

Espero que te sirva.

Saludos.

Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es


"Setnis" escribió en el mensaje
news:036a01c3bfd7$4fc4fe90$
Hola a todos,

Se puede crear un procedimiento en SQL Server y que éste
se ejecute cada cierto tiempo. Por ejemplo, cada mes. No
estoy muy puesto en el tema, pero por lo que he visto el
comando que ejecuta los Procedures es el Execute.

El tema es que quiero crear una sentencia q compruebe un
campo fecha, de tal manera que si ese campo es anterior a
la fecha del sistema se eliminen esas filas de la base de
datos.

DECLARE @fecha
@fecha = getdate()
IF EXIST(SELECT * FROM tabla_name
WHERE delete_date < @fecha)
DELETE FROM tabla_name WHERE delete_date < @fecha

Creo q este seria el procedimiento, mi problema es como
hacer q esto se ejecute cada cierto intervalo de tiempo.

Espero haberme explicado con claridad.
Muchas gracias por vuestro tiempo


.

Respuesta Responder a este mensaje
#4 Pablo O. Abbate
12/12/2003 - 10:55 | Informe spam
SQL Server 6.5 si soporta los jobs, aunque se denominan task. Tambien puedes
programarlos para que se ejecuten con una frecuencia determinada.

"Setnis" escribió en el mensaje
news:068301c3c07d$c698bf10$

Muchas gracias por la información, creo que es la mejor
solución.

He estado probando en casa con SQL Server 2000, el
problema es q lo tengo que realizar sobre una máquina
servidor donde esta instalado SQL Server 6.5, ¿sabes
decirme si esta versión tb soporta lo de los Jobs?

Gracias de nuevo.

Hola:

En SQL Server existe un servicio conocido como el Agente


SQL. Entre otras
cosas, el agente puede ejecutar tareas programadas de


acuerdo a una
frecuencia dada.
Lo único que debes hacer es ir al Entrerprise Manager y


hacer lo siguiente:

1) Abrir el árbol de la siguiente forma:
Microsoft SQL Servers >> (Nombre del Servidor) >>


Management >> Jobs
2) Botón Derecho, New Job y le especificas, entre otras


cosas, el nombre del
job, la secuencia de pasos a ejecutar (donde indicarás el


nombre de tu store
procedure) y, por último, la frecuencia con la cual


quieres que se ejecute
el sp.

3) Fijate que el Agente SQL esté funcionando.

Espero que te sirva.

Saludos.

Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es


"Setnis" escribió en el mensaje
news:036a01c3bfd7$4fc4fe90$
Hola a todos,

Se puede crear un procedimiento en SQL Server y que éste
se ejecute cada cierto tiempo. Por ejemplo, cada mes. No
estoy muy puesto en el tema, pero por lo que he visto el
comando que ejecuta los Procedures es el Execute.

El tema es que quiero crear una sentencia q compruebe un
campo fecha, de tal manera que si ese campo es anterior a
la fecha del sistema se eliminen esas filas de la base de
datos.

DECLARE @fecha
@fecha = getdate()
IF EXIST(SELECT * FROM tabla_name
WHERE delete_date < @fecha)
DELETE FROM tabla_name WHERE delete_date < @fecha

Creo q este seria el procedimiento, mi problema es como
hacer q esto se ejecute cada cierto intervalo de tiempo.

Espero haberme explicado con claridad.
Muchas gracias por vuestro tiempo


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida