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.

Ver Video Ejecutar Consulta SQL desde Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

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.

Elegir origen de datos desde Excel

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.

Crear nuevo origen de datos en Excel

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.

Datos de acceso al server de SQL

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.

Ejecutar SP desde Microsoft Query

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.

Importar datos desde SQL

Figura 5. Importar datos desde SQL.

You may also like...

5 Responses

  1. Nicolas Riquelme says:

    tengo problema para generar el SP creo que es porque existen parametros que son null

    ejemplo:

    Exec justGeulen.dbo.Reporte_OrdenCompra_Instalacion ‘8’ , null, ’01-02-2013′, ’28-02-2014′, ‘31012000-2007′, null, ”,”,’1′, null

    –@IdDocumento=8,
    –@IdSucursal=Null,
    –@FechaDesde=’01-10-2013′,
    –@FechaHasta=’14-01-2014’,
    –@IdCuenta=Null,
    –@IdSubCuenta=Null,
    –@Razon_Social=”,
    –@IdEntidad=”,
    –@xTipoInforme=1,
    –@IdDepartamento=Null

    Lo que se encuentra comentado son los parametros que solicita el SP apenas se ejecuta. Ya realice este proceso con otro SP que solo ingreso parametros y fuciona.

    Favor ayuda….

  2. Liz Montesinos says:

    Hola, muy interesante tu post, pero tengo una consulta, tu ingresas los parámetros del procedimiento al momento de introducir el SQL, pero como hacer para llamar al procedimiento desde Excel?? Quiero que el usuario introduzca en una celda de Excel la fecha y esta pase al procedimiento. Ayuda….

Leave a Reply

Your email address will not be published.

%d bloggers like this: