Alternativa a SQL Agent
Es bastante común en las versiones Express de SQL Server que se busque una alternativa a SQL Server Agent para programar JOBS tan necesarios como actualizar algunas tablas o crear respaldos.
El proceso consta de tres sencillos pasos:
1) Crear un archivo *.sql con las instrucciones deseadas (actualizaciones, respaldos, restauraciones, etc)
2) Crear un archivo *.bat que ejecute
OSQL llamando al scritp *.sql creado.
Ejemplo:
Supongamos que deseamos respaldar una base de datos.
Abrimos el bloc de notas (o el Notepad++ ó Sql Server Management Studio ó el editor SQL que usen) y tecleamos:
USE Master
GO
BACKUP DATABASE [MiBaseDeDatos] TO DISK = N’C:\MisRespaldos\MiBaseDeDatos.BAK’ WITH INIT;
GO
Guardamos el archivo (“Miscript.sql”, por ejemplo).
Volvemos a abrir el editor y tecleamos:
OSQL -E -i C:\Ruta_A_Mi_archivo\Miscript.sql -o C:\Ruta_Deseada\Salida.rpt -n
Guardamos el archivo como “RespaldoMiBase.bat”.
Creamos la tarea programada en Windows, configurandola para ejecute el archivo: “RespaldoMiBase.bat”
Y listo.
El parámetro -E en OSQL significa que se usa una conexión de confianza. Si deseas configurar usuario y contraseña debes usuar los parámetros adecuados:
-U [Nombre de Usuario o Login] y -P [Contraseña]
El parámetro -n significa “no headers”, con ello los encabezados (carácteres y conteo de lineas) no se escribirán.
El parámetro -o significa archivo de salida. Especificando el archivo de salida provocará que lo resultados se impriman a este, pero no a pantalla.
Si utilizas una conexión de confianza no se te olvide incluir “USE [DATABASE]” o referir con ruta completa (BaseDeDatos.schema.Tabla) a las tablas de las base de datos.
No se les olvide probar antes el script SQL, la llamada a OSQL desde la línea de comandos y por último la ejecución del archivo *.bat.
Además, deben recordar que las tareas programadas en Windows dependen de la cuenta de usuario que les asignan, asi que si cambian la contraseña y no actualizan la tarea, esta no se ejecutará.
admin
July 20, 2011
SQL SERVER
No Comment