视图的选择列(Select Columns of a View)

2019-07-30 04:07发布

我试图选择的列名view以类似的方法,从选择information_schema.columns

我似乎无法找到一个方法来做到这一点。 有没有人做过其他这样或知道,如果它甚至有可能?

Answer 1:

information_schema.columns.Table_name(至少在SQL Server 2000中)包括意见,所以只要使用

SELECT * FROM information_schema.columns WHERE table_name = 'VIEW_NAME'


Answer 2:

试试这个:

SELECT *
FROM sys.views

这给你的意见,这样的 - 如果你需要的列,使用:

SELECT * 
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.YourViewNameHere')

不知道你怎么可以用做INFORMATION_SCHEMA -我从来没有使用,因为它感觉相当“笨重”和直观,相比sys架构目录视图。

见在目录视图MSDN文档所有的所有可用的意见,他们可能包含的细节,以及什么样的信息。



Answer 3:

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


Answer 4:

INFORMATION_SCHEMA视图包含有关数据库中的对象元数据。 INFORMATION_SCHEMA.COLUMNS使用底层SYS表以检索所述元数据(检查sp_helptext的“master.Information_schema.columns”)。 你可以使用这个简单的查询选择在任何视图中使用的列名。

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>'


Answer 5:

我发现这样的观点(SQL 2017)工作。 我无法从获得的数据information_schema.columnssys.columns

    SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('<view_name>')


文章来源: Select Columns of a View