view
から選択するのと同様の方法で、の列名を選択しようとしていますinformation_schema.columns
。
私はこれを行う方法を見つけることができないようです。他の誰かが以前にこれをしたことがありますか、それが可能かどうかさえ知っていますか?
information_schema.columns.Table_name (少なくとも Sql Server 2000 では) にはビューが含まれているため、使用するだけです
SELECT * FROM information_schema.columns WHERE table_name = 'VIEW_NAME'
この方法がビューで機能することがわかりました(SQL 2017)。information_schema.columns
とからデータを取得できませんでしたsys.columns
:
SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('<view_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>'
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