Bueno... con semejante requerimiento solo nos queda hacer uso de un archivo .BAT (Batch).
Los archivos .BAT son un archivo de texto que solamente ejecuta comandos de manera primaria en el DOS (Disk Operating System) y en él se puede invocar la ejecución de otras aplicaciones.
Para el caso que necesitamos en este ejemplo, escribiremos la instrucción que necesitamos ejecutar en nuestra base de datos en un archivo .sql y lo guardamos en una ruta del disco duro fácil de acceder. En un editor de textos plano, como el notepad, guardando después el archivo con el nombre de nuestra elección sin olvidar la extensión .sql.
Nota: Es preferible que podamos acceder a la BD de SQLServer desde la misma máquina donde vamos a poner el archivo .sql y el archivo .bat
Ejemplo del archivo .sql:
Update seguridad_lic SET licencia_status = 1 where cliente_pago = 'OK';
Como se puede ver es una instrucción SQL que puede ser interpretada por SQL Server de manera fácil. Este archivo lo guardamos con el nombre instruccion.sql (puedes ponerle el nombre que quieras pero con esa extensión) y ahora construimos el archivo ejecutar.bat
Ejemplo del archivo ejecutar.bat:
@echo off
OSQL -U (username) -P (password) -S (Direccion IP del servidor con el puerto, si no hay un valor por defecto) -i C:\instruccion.sql -o c:\instruccion.txt
Y ahora lo que nos hace falta es que se ejecute repetidamente. Para esto podemos hacer 3 tipos de alternativas:- Ejecución infinita en un ciclo interminable (muy poco recomendable).
- Ejecutarlo un determinado número de veces (mejor, pero tiene una vida útil limitada)
- Incluirlo en el registro de Windows, para que se ejecute cada determinado tiempo o periódicamente (más recomendable)
1. Ejecución infinita en un ciclo interminable
Para esto simplemente usamos un puntero y lo invocamos internamente, de manera que hace un ciclo infinito. Abrimos el archivo (NO con Doble Clic), Botón derecho y abrirlo con el bloc de notas (por si acaso):@echo off
:repetiresto
OSQL -U (username) -P (password) -S (Direccion IP
del servidor con el puerto, si no hay un valor por defecto) -i
C:\instruccion.sql -o c:\instruccion.txt
Goto repetiresto
Guardamos de nuevo el archivo y listo.
Advertencia: La única manera de detener este archivo es eliminando el proceso por el Adminitrador de Tareas.
2. Ejecutarlo un determinado número de veces
De nuevo, abrimos el archivo para editarlo y hacemos el siguiente ajuste:@echo off
set Repetir=1
goto
repetiresto
:
repetiresto
set /a Repetir=Repetir+ 1
OSQL -U (username) -P (password) -S (Direccion IP
del servidor con el puerto, si no hay un valor por defecto) -i
C:\instruccion.sql -o c:\instruccion.txt
if %Repetir% == 5 (goto fin) else (goto
repetiresto
)
:fin
En este ejmplo lo pusimos a que se repitiera 5 veces.
3. Incluirlo en el registro de Windows
Al hacer esto, se iniciará cuando iniciemos el PC, por lo tanto, quedará dependerá de que la máquina esté activa.No hace falta modificar el archivo ejecutar.bat que ya tenenos escrito desde el comienzo. Solamente hay que crear uno nuevo para hacer el registro en Windows y debe ser así:
@echo off
AT 17:00 @echo off&&start c:/ejecutar.bat
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d "c:/ejecutar.bat"
Espero que les ayude en sus procesos de ejecución de base de datos periódicos.
Un saludo,
@ivan_londono