joshhansen29
Hola a todos,
Me doy cuenta de que este podría no ser el mejor enfoque para hacer esto, pero esperaba ver si es posible.
Objetivo general: estoy tratando de usar Power query para generar una lista de todas las columnas y tipos de datos de cada procedimiento almacenado en una base de datos.
Procedimiento almacenado | nombre | system_type_name |
DB_Sch.fmcParAction | ExecuteAction | nvarchar (30) |
DB_Sch.fmcParAction | ExecuteActionId | nvarchar (30) |
DB_Sch.fmcParContainerId | ContainerId | carbón (16) |
DB_Sch.fmcParContainerIdAssembly | ContainerId | carbón (16) |
DB_Sch.fmcParDataCollection | DataCollectionId | carbón (16) |
DB_Sch.fmcParDataCollection | DataCollectionName | nvarchar (30) |
DB_Sch.fmcParDataCollectionByTaskLlist | DataCollectionDefName | nvarchar (30) |
DB_Sch.fmcParDataCollectionRev | DataCollectionDefBaseId | carbón (16) |
DB_Sch.fmcParDataCollectionRev | Recopilación de datos | nvarchar (48) |
He podido acercarme bastante con una solución alternativa, pero requiere un paso manual.
Tengo una consulta que genera una lista de cada procedimiento almacenado en la base de datos.
Procedimiento almacenado |
DB_Sch.fmcParAction |
DB_Sch.fmcParContainerId |
DB_Sch.fmcParContainerIdAssembly |
DB_Sch.fmcParDataCollection |
DB_Sch.fmcParDataCollectionByTaskLlist |
DB_Sch.fmcParDataCollectionRev |
También tengo una consulta que generará una lista de cada columna a partir de un solo procedimiento almacenado. (El problema es que solo devolverá resultados para un procedimiento almacenado).
SELECCIONE ‘DB_Sch.fmcParDataCollection’ AS [SP], nombre, system_type_name
FROM sys.dm_exec_describe_first_result_set_for_object (OBJECT_ID (‘DB_Sch.fmcParDataCollection’), NULL)
Procedimiento almacenado | nombre | system_type_name |
DB_Sch.fmcParDataCollection | DataCollectionId | carbón (16) |
DB_Sch.fmcParDataCollection | DataCollectionName | nvarchar (30) |
Entonces, mi solución actual es usar la primera consulta para generar la lista de procedimientos almacenados, luego agregar una columna adicional que crea la consulta para cada Procedimiento almacenado con un UNION al final de cada fila.
En este punto, puedo copiar el texto de la columna Consulta y pegarlo como la declaración SQL que generará lo que estoy buscando, pero ahora es una consulta estática que no traerá nuevos Procedimientos almacenados que se crean sin actualizar manualmente la consulta.
¡Gracias por adelantado!
Josh
dax
Hola joshhansen29,
No tengo claro su requisito, si es posible, ¿podría explicar «Puedo copiar el texto de la columna Consulta y pegarlo como la declaración SQL que generará lo que estoy buscando, pero ahora es una consulta estática que no traerá nuevos Procedimientos almacenados que se crean sin actualizar manualmente la consulta. .«¿Para mí? ¿Podría utilizar la consulta para obtener este valor directamente?
Atentamente,
Zoe Zhi
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
joshhansen29
En respuesta a dax
Hola,
Lo que quise decir es que puedo copiar toda la columna (en un círculo rojo)
Luego, puedo pegar el texto en la declaración SQL (en un círculo en azul) de la fuente de otra consulta.
Básicamente, estoy usando Power query para escribir el texto de otra consulta SQL. Solo esperaba que hubiera una manera de hacerlo directamente sin tener que copiar manualmente el texto generado y pegarlo en la nueva consulta.
¿Tiene sentido?
¡Gracias!
Josh