sql - tablas - Seleccionar columnas de una vista
select columnas sql (4)
Las vistas de INFORMATION_SCHEMA contienen metadatos sobre objetos dentro de la base de datos. INFORMATION_SCHEMA.COLUMNS usa tablas de sys subyacentes para recuperar los metadatos (verifique sp_helptext ''master.Information_schema.columns''). Puede utilizar esta consulta más sencilla para seleccionar los nombres de columna utilizados en cualquier vista.
SELECT col.name
FROM <db_name>.sys.columns col, <db_name>.sys.views vew
WHERE col.object_id = vew.object_id
AND vew.name = ''<view_name>''
Estoy intentando seleccionar los nombres de columna de una view
de una manera similar a la selección de information_schema.columns
.
Parece que no puedo encontrar una manera de hacer esto. ¿Alguien más ha hecho esto antes o sabe si es posible?
Prueba esto:
SELECT *
FROM sys.views
Esto le da las vistas como tales; si necesita las columnas, use esto:
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID(''dbo.YourViewNameHere'')
No estoy seguro de cómo puede hacerlo utilizando INFORMATION_SCHEMA
. Nunca uso eso, ya que se siente bastante "torpe" e intuitivo, en comparación con las vistas del catálogo del esquema del sistema.
Consulte los documentos de MSDN en las Vistas del catálogo para ver todos los detalles de todas las vistas disponibles y la información que pueden contener.
information_schema.columns.Table_name (al menos en Sql Server 2000) incluye vistas, así que solo use
SELECT * FROM information_schema.columns WHERE table_name = ''VIEW_NAME''
SELECT distinct VIEW_NAME
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME
FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
--WHERE TABLE_SCHEMA = ''Person''
ORDER BY
VIEW_NAME
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME