Ejecutar un SP de SQL Server desde Microsoft Query en Excel
En otras ocasiones he publicado artículos relacionados al uso de Transact-SQL para hacer consultas desde Excel y traernos información a nuestra hoja de cálculo y comenzar a manipularla.
En esta ocasión les comparto un procedimiento para ejecutar Store Procedures de SQL Server o también llamados SP’s.
Procedimientos almacenados
Un SP o procedimiento almacenado es un lote de código T-SQL al cual se le ha asignado un nombre y éste puede recibir parámetros de entrada o simplemente ser ejecutados.
Como finalidad de este artículo no es sobre el tema de cómo crear SP’s el siguiente código nos muestra la manera en cómo creamos uno desde SQL Server que permite hacer una consulta a la tabla Result donde recogeremos datos de las columnas result_final y fecha. Los parámetros que recibirá son fechaini y fechafin.
CREATE PROCEDURE (Transact-SQL)
USE BDD GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[GetResult] (@fechaini datetime, @fechafin datetime) AS BEGIN --Aquí comienza el código de T-SQL que hace una consulta a la tabla Result SELECT result_final, fecha FROM Result WHERE fecha BETWEEN @fechaini AND @fechafin ORDER BY fecha -- END
Ejecutar procedimiento almacenado
Para ejecutar un SP utilizamos la instrución EXEC y para este ejemplo también le definimos los parámetros de las fechas.
EXEC GetResult '2013-11-20 00:00:00, '2013-11-20 23:59:59'
Cómo ejecuto un SP desde Excel
Para ejecutar el SP haremos uso de Microsoft Query y escribiendo el código anterior usando EXEC. En la pestaña Datos nos vamos a Obtener datos externos, De otras fuentes y elegimos Desde Microsoft Query.
En el formulario Elegir origen de datos seleccionamos la opción <Nuevo origen de datos> y damos Aceptar.
Figura 1. Elegir origen de datos desde Excel.
El siguiente paso será definir el nombre del origen de datos, elegir el controlador que se usará. En este caso será SQL Server.
Figura 2. Crear nuevo origen de datos.
Deberemos tener los datos de acceso al servidor de SQL para poder conectarnos a él. En el formulario anterior presionaremos Conectar… y nos pedirá dichos datos.
Figura 3. Datos de acceso al server de SQL.
De manera opcional podemos elegir la tabla para el origen de datos.
Cuando ya se haya creado el origen de datos damos Aceptar en el formulario Elegir origen de datos. Se mostrará un formulario para elegir las columnas de la tabla. Presionamos Cancelar y luego presionamos Sí a la pregunta ¿Desea continuar modificando esta consulta con Microsoft Query?
En el siguiente formulario de Agregar tabla presionamos Cerrar. Ya dentro de Microsoft Query damos click en el botón marcado como SQL y se mostrará una ventana donde ingresaremos el código para ejecutar el SP.
Nos mostrará un mensaje de que es imposible presentar gráficamente una consulta SQL. Presionamos Aceptar y nos mostrará el resultado de la consulta.
Figura 4. Ejecutar SP desde Microsoft Query.
Los datos no se manipularén en Microsoft Query, por lo que podemos cerrar la ventana y se nos dará la opción de pasar los datos a una tabla de Excel, tabla dinámica o gráfico dinámico. Elegiremos la que mejor se adecué a nuestra necesidad.
Figura 5. Importar datos desde SQL.