我试图选择的列名view
以类似的方法,从选择information_schema.columns
。
我似乎无法找到一个方法来做到这一点。 有没有人做过其他这样或知道,如果它甚至有可能?
我试图选择的列名view
以类似的方法,从选择information_schema.columns
。
我似乎无法找到一个方法来做到这一点。 有没有人做过其他这样或知道,如果它甚至有可能?
information_schema.columns.Table_name(至少在SQL Server 2000中)包括意见,所以只要使用
SELECT * FROM information_schema.columns WHERE table_name = 'VIEW_NAME'
试试这个:
SELECT *
FROM sys.views
这给你的意见,这样的 - 如果你需要的列,使用:
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.YourViewNameHere')
不知道你怎么可以用做INFORMATION_SCHEMA
-我从来没有使用,因为它感觉相当“笨重”和直观,相比sys
架构目录视图。
见在目录视图MSDN文档所有的所有可用的意见,他们可能包含的细节,以及什么样的信息。
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
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>'
我发现这样的观点(SQL 2017)工作。 我无法从获得的数据information_schema.columns
和sys.columns
:
SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('<view_name>')