Seleccionar columnas de una vista
Estoy intentando seleccionar los nombres de columna de un 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?
4 answers
Information_schema.columna.Table_name (al menos bajo Sql Server 2000) incluye vistas, así que solo use
SELECT * FROM information_schema.columns WHERE table_name = 'VIEW_NAME'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-29 20:19:57
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 usando INFORMATION_SCHEMA
- nunca uso eso, ya que se siente bastante "torpe" y poco intuitivo, en comparación con las vistas de catálogo de esquemas sys
.
Vea los documentos MSDN en las Vistas de catálogo para todos los detalles de todas las vistas disponibles, y qué información podrían contener.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-29 20:18:33
Las vistas INFORMATION_SCHEMA contienen metadatos sobre los objetos dentro de la base de datos. INFORMATION_SCHEMA.COLUMNS utiliza tablas de sys subyacentes para recuperar los metadatos (compruebe sp_helptext 'master.Information_schema.columna' ). 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>'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-25 04:34:55
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-15 17:54:33