es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una forma de obtener el uso de columnas de una vista en múltiples bases de datos con INFORMATION_SCHEMA.VIEW_COLUMN_USAGE?

Cuando uso:

select *
from INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
WHERE VIEW_NAME = 'v_ExampleView'

Obtengo la tabla y las columnas de la base de datos actual, pero hay tablas fuera de esa base de datos que se están utilizando en la vista. Tengo acceso de solo lectura a nuestro almacén de datos y estoy tratando de obtener información sobre nuestras vistas, como las tablas de las que están extrayendo datos y posiblemente las condiciones que se están aplicando. Estoy utilizando SSMS. ¡Cualquier ayuda sería muy apreciada!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener información sobre una vista y las tablas de las que extrae datos, puedes utilizar la siguiente consulta en SSMS:

    SELECT OBJECT_NAME(v.[object_id]) AS NombreVista
     ,o.name AS NombreTabla
     ,c.name AS NombreColumna
    FROM sys.views v
    INNER JOIN sys.dependencies d ON d.referencing_id = v.[object_id]
    INNER JOIN sys.objects o ON o.[object_id] = d.referenced_id
    INNER JOIN sys.columns c ON c.[object_id] = d.referenced_id AND c.column_id = d.referenced_minor_id
    WHERE v.name = 'v_ExampleView'
    

    Esta consulta recupera el nombre de la vista, el nombre de la tabla de la que extrae datos y el nombre de la columna en esa tabla que se utiliza en la vista.

    Ten en cuenta que esta consulta solo recupera información sobre las tablas dentro de la misma base de datos que la vista. Para obtener información sobre tablas fuera de la base de datos actual, deberías conectarte a la base de datos relevante y ejecutar la consulta en su tabla INFORMATION_SCHEMA.VIEW_COLUMN_USAGE o sys.dependencies/view. Sin embargo, como solo tienes acceso de solo lectura al almacén de datos, es posible que no tengas permisos para acceder a las bases de datos relevantes.

Comments are closed.