Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

¿Cómo utilizar un Proc almacenado de SQL Server (sin parámetros) como origen de datos?

Se encontró con un problema al intentar usar un procedimiento almacenado de SQL Server como origen de datos en el escritorio de Power BI. Aparece el error "Microsoft SQL: Sintaxis incorrecta cerca de la palabra clave 'EXEC'.". Un poco irónico que se encuentre un error con el propio producto DataBase de Microsoft. He probado las opciones "Consulta directa" e "Importar" con el mismo resultado final exacto. Puedo EXECute el Proc almacenado muy bien dentro de SQL Server Management StudioSQL Server Management Studio con el mismo ID de usuario que uso en Power BI. Apreciar cualquier ayuda

Gracias

Jagannathan Santhanam

1 ACCEPTED SOLUTION
jdbuchanan71
Super User
Super User

En SQL, ¿puede crear una vista que llame al proc almacenado y, a continuación, que llegue a la vista desde Power BI?

View solution in original post

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

Hola a todos
¿Hay alguna actualización con respecto a este tema?. Estoy encontrando el mismo problema, los procedimientos almacenados no se pueden usar en Direct Query pero funcionan con el modo Importar.
Si alguien encontró una solución con respecto a este problema, por favor comparta su idea para superar esto.
Gracias

Dharmendran

gluizqueiroz
Resolver I
Resolver I

Sí, puede usar un procedimiento almacenado como "origen de datos" SI el procedimiento almacenado devuelve una tabla. He creado esta prueba simple y funciona:

CREATE TABLE TableTest
(
 NAME VARCHAR(100),
 AGE INT
)

INSERT INTO TableTest
VALUES
('Jonh Doe', 20),
('Tom Wayne', 35),
('Tony Clark', 40)

SELECT * FROM TableTest

CREATE PROCEDURE ProcedureTest
AS 
BEGIN
 SELECT * FROM TableTest
END

EXEC ProcedureTest


Si ejecuto este código SQL en SQL Server Management StudioSQL Server Management Studio, devolverá 3 líneas con 2 columnas que contienen el contenido de TableTest.Si va a Power BI y va a "Obtener datos", elija "Sql Server Database" y coloque la dirección IP, haga clic en el botón inferior de "Opciones avanzadas" y coloque EXEC ProcedureTest en el campo de "Instrucción SQL" se cargará y mostrará la devolución del procedimiento, si la devolución es una tabla, verá una tabla. Como lo siguiente:

gluizqueiroz_0-1593092089947.png

Anonymous
Not applicable

Mismo número, tengo la última versión de PBI Desktop "Versión: 2.82.5858.961 64-bit (junio 2020)"

jagannathan_0-1593092617264.png

¿Podría probar el tipo "Importar" y usar "procedimiento EXEC" en su lugar "procedimiento EXECUTE"?
(Uso Power BI en portugués)

gluizqueiroz_0-1593093179212.png

devolución:

gluizqueiroz_1-1593093220998.png

@gluizqueiroz es correcto, sólo funciona con el modo de importación, no con la consulta directa.

Anonymous
Not applicable

Bueno, si mi comprensión del modo de importación es correcta, derrota todo el propósito de una "Consulta Directa" en vivo. No quiero actualizar manualmente los datos cada vez que los datos cambian en la base de datos, que es cada minuto, todos los días.

Por lo tanto, puede usar Consulta directa y copiar la instrucción select (que está dentro del procedimiento) y pegarla en Power BI, en su lugar, usar el "procedimiento EXEC".

Use SP_HELPTEXT 'YourProcedure' en SQL Server Management Studio > Copiar la instrucción sql entre BEGIN y END > Pegarla en el campo Instrucción SQL en Power BI > Elegir consulta directa

Debería funcionar, pero tal vez sea necesario realizar algunos cambios en el código sql.

Anonymous
Not applicable

También podría incrustar SQL en mi conexión directa, sin embargo, derrota todo el propósito de la encapsulación de código. Si necesito cambiar el código, no quiero hacerlo en Power BI, debe realizarse en el nivel de SQL Server.

Por cierto, implementé una vista usando el SQL y funciona. Esto es sin duda una mejora para el equipo de desarrolladores de Microsoft Power BI

jdbuchanan71
Super User
Super User

En SQL, ¿puede crear una vista que llame al proc almacenado y, a continuación, que llegue a la vista desde Power BI?

Anonymous
Not applicable

No creo que una VISTA pueda ejecutar un procedimiento almacenado dentro de sí mismo. He probado varios tipos de comandos y encontrado errores de compilación. Por cierto, mi publicación original parece un área de mejora para el equipo de desarrollo de Power BI

Encontré lo siguiente que podría ayudar.

https://intellipaat.com/community/3763/how-to-use-sql-server-stored-procedures-in-microsoft-powerbi

Para ejecutar el procedimiento almacenado en Power BI:

  • Vaya a SQL Server "clic derecho" en el procedimiento almacenado y seleccione "Ejecutar". Después de la ejecución del bacalao, se abre una nueva ventana de consulta que fue responsable de la ejecución. Copie esa consulta.

  • Vaya al Editor de consultas de Power BI, haga clic en Nuevo origen y seleccione SQL Server. Después de dar el servidor y la base de datos, haga clic en "Opciones avanzadas", pegue la consulta en la "Declaración SQL". Navegue usando la jerarquía completa y haga clic en Ok.

  • Verá los datos de los parámetros que ha pasado solo en Procedimientos almacenados.

Recuerde que esto funciona en la opción "Importar consulta".

Esto es demasiado inteligente. ¡¡¡¡¡Muchas gracias!!!!!

Anonymous
Not applicable

Ya lo intenté, sólo veo tablas y vistas. No veo Procedimientos almacenados, aunque el Proceso almacenado específico se granó los derechos correctos.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.