SQL Server permite programar tareas de cualquier tipo para
que se ejecuten automáticamente a la
hora que deseemos, de ellas la más
habitual es programar una copia de
seguridad de la base de datos por ejemplo para que se realice todas las noches de madrugada.
Para programar una tarea
automática en SQL server hay que abrir el explorador de objetos y tener
activado el Agente de SQL server, dentro del agente sobre la carpeta de
trabajos.
Pulsamos botón derecho
del ratón y elegimos nuevo trabajo.
Con esto se abre la
pantalla de abajo, sobre la pestaña General (ver a su izquierda) escribiremos
el nombre de la tarea, el propietario que será el administrador sa o cualquier
otro.
En descripción podemos
escribir un texto explicativo de lo que hace la tarea, y en el check habilitado
lo marcaremos para que la tarea se ejecute cuando le indiquemos más adelante.
Pulsamos a la izquierda sobre la pestaña pasos y se abre una pantalla similar a
la anterior.
Pulsamos el botón nuevo
para agregar un nuevo paso, lo que abrirá otra ventana, en esta ventana
pondremos el nombre del paso, el tipo del paso, por defecto una secuencia de
comandos Transact-SQL.
También elegimos la base
de datos sobre la que actuará la secuencia de comandos y finalmente en el área específica
para ello escribiremos la secuencia de comandos, en este caso la secuencia para
realizar una copia de seguridad de la base de datos.
Esta nueva pantalla a su
vez tiene dos pestañas, la General mostrada arriba y la de Avanzado mostrada
abajo.
En la pestaña de
Avanzado podemos especificar la acción a realizar después del paso si hubiera
más de dos, el número de reintentos, lo que hará en caso de error, etc.
También podemos elegir en
que directorio se grabará la copia de
seguridad (en este caso) o el archivo de salida en un caso más general. Se hace
pulsando el botón de los tres puntos … remarcado en rojo, que nos abre un
cuadro estándar para elegir un directorio.
Hecho esto sobre la
pantalla de la pestaña pasos aparecerá nuestro paso creado, podemos crear
tantos como queramos pero en este caso nos basta con uno. Si queremos
modificarlo nos posicionamos sobre el paso deseado y pulsamos el botón Editar.
Si pulsamos la pestaña
programaciones pulsando el botón nuevo, se nos abrirá otra pantalla donde le
indicaremos si la tarea será periódica, la frecuencia de esta, la hora de comienzo,
etc. También es importante pulsar el check Habilitado a la derecha del tipo de
programación para que esta se ejecute
Elegidas las opciones
deseadas pulsamos Aceptar y vamos a la pestaña notificaciones donde podremos
elegir como y a quien se notificará cuando se realice la tarea o cuando se
produzca un fallo.
Finalmente realizada la
nueva tarea, esta aparecerá en la página principal del monitor de actividad. Si
se ha realizado correctamente aparecerá con un icono verde y si dio error
aparecerá con un icono de aspa roja.
quiero hacer lo mismo con un delete
ResponderEliminarQuiero Hacer lo mismo para borrar registros antiguos de mi bd. Y uqe solo me queden los registros mas recientes. (puede ser un margen de 2 meses... Como lo haria? alguien me puede ayudar?
ResponderEliminarDependiendo de la cantidad de tablas que tengas en tu base de datos la tarea puede ser más o menos tediosa. Si tienes muchas tablas
ResponderEliminarborrar registros con más de dos meses puede ser una tarea compleja por lo que la mejor opción es precisamente generar una tarea para que
se ejecute automáticamente todos los meses o todas las semanas.
La tarea se crea como explico en el post y en los pasos tendrías que poner tantas intrucciones del tipo:
DELETE dbo.tbNombre_Tabla where DATEDIFF(month, Columna_fecha, GETDATE()) > 2
como tablas tangas de tal modo que que quedaría una tarea de este estilo.
DELETE dbo.tbNombre_Tabla1 where DATEDIFF(month, Columna_fecha1, GETDATE()) > 2
DELETE dbo.tbNombre_Tabla1 where DATEDIFF(month, Columna_fecha2, GETDATE()) > 2
DELETE dbo.tbNombre_Tabla2 where DATEDIFF(month, Columna_fecha, GETDATE()) > 2
DELETE dbo.tbNombre_Tabla3 where DATEDIFF(month, Columna_fecha, GETDATE()) > 2
....
....
etc.
Que se ejecutará automáticamente cada periodo de tiempo que le especifiques.
Espero que te sirva de ayuda.
Qué version de SQL Management tenés ??? en el que tengo no aparece el Agente SQL Server en el árbol...
ResponderEliminarYo tengo SQL 2005, SQL 2008 R2 y SQL 2014. Lo veo en las tres versiones, tal vez sea un problema de licencia. Por ejemplo aquí indica que en las licencias Express no está disponible el SQL Server Agent.
Eliminarhttps://www.microsoft.com/es-es/download/details.aspx?id=8961
Aquí explica como iniciar el agente en SQL 2008
https://technet.microsoft.com/es-es/library/ms191454(v=sql.105).aspx
Y aquí en 2014.
https://msdn.microsoft.com/es-es/library/ms178142(v=sql.120).aspx