Ir al contenido principal

Como ejecutar SQL desde Tareas Programadas de Windows

Bienvenidos a este blog, esta semana les quiero compartir otro ejemplo de archivos BAT o Batch en Windows para ejecutar una consulta a una base de datos SQL con la instrucción sqlcmd y poder ejecutar tareas programadas en sql server desde las tareas programadas de Windows.

El comando sqlcmd es de Microsfot y nos ayuda para ejecutar consultas desde un archivo esta es la definición que da Microsoft

La utilidad sqlcmd es una utilidad de la línea de comandos para la ejecución ad hoc e interactiva de instrucciones y scripts de Transact-SQL y para la automatización de tareas de scripting de Transact-SQL. Para usar sqlcmd interactivamente, o para compilar archivos de script que se ejecutan mediante sqlcmd, los usuarios deben estar familiarizados con Transact-SQL. La utilidad sqlcmd se usa normalmente de las formas siguientes:

Ejemplo:

Objetivo: Ejecutar un query a una base de datos para obtener las facturas timbradas a clientes y crear un archivo csv de salida y alojarlo en una carpeta

Código

Necesitamos 2 archivos

Uno que sea el archivo BAT en mi caso lo llame sqltimbrados.bat  y dentro las siguientes lineas

sqlcmd -i C:\CFDIxml\SAT3.3\UUID_QAD\sqljob.sql -o W:\einvoicemx\folios.csv
if errorlevel 1  

echo == An error occurred


la primera linea es para que llame el comando sqlcmd al archivo que contiene el query o consulta a sql y con el parametro -o le indicamos que deje la salida al archivo folios.csv en una unidad mapeada en la computadora así que no solo pueden dejar archivos en su propia computadora puede ser en alguna otra maquina en la que estén en red. 

Archivo 2 es donde esta la consulta a la base de datos el archivo lo llame sqljob.sql y contiene lo siguiente

SELECT FolioSAT, ',' ,
  (CONVERT(varchar(10),year(FechaComprobante))+'/'+ serie + folio) as factura
FROM [Comprobante] 
WHERE esprueba = 0 AND
( confirmacion IS NULL OR 
confirmacion = '' )
;
UPDATE [Comprobante] SET Confirmacion = 'EXPORTED-TO-QAD'
WHERE esprueba = 0 AND 
AND  ( confirmacion IS NULL OR 
confirmacion = '' ) 

;




En mi consulta esta dividido en 2 partes, la primera es el query para obtener los datos y en la segunda un update para marcar que registros leyó el query para no volverlo a tomar.

En el primer select obtengo 3 columnas, el folio del SAT, el folio de la factura como lo requiero que es concatenando o uniendo el Año de timbrado más "/" una diagonal , mas la serie, mas el folio y a ese campo le llamo Factura, el archivo de salida se ve así





Adicional a estos 2 archivos, configure una tarea programada para ejecutar el archivo bat de manera diaria, de esta forma tengo un proceso automático, que podría haberse realizado también con un store procedure en la base de datos y crear un Job en la Base de datos, pero como tengo SQL Server Express no tengo la función de Job, así que me parece una muy buena alternativa la que les mostré. 



Usos de este script, puede ser para generar respaldos de la base de datos, para enviar información a otro sistema mediante una red mapeada, generar consulta de información para reportes. 

No olvide compartirnos y seguirnos en este blog, en Facebook.

Otro ejemplos de SQL en este blog

Mas ejemplos de Batch

Comentarios

  1. Muy buena la explicación, gracias
    Una pregunta y si preciso conectarme a una base que esta en otra maquina y le tengo que dar usuario y clave de la base para conectarme a la misma, como sería? Gracias

    ResponderBorrar
  2. Podrías privar en el archivo .sql en la primer línea
    DESKTOP-5K4TURF\SQLEXPRESS -U usuario -P
    Password
    Después tus querys

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas