在SQL Server 2012中,如何从视图、函数或存储过程中获取列名和数据类型?
我可以通过以下方式从数据库表中获取列名和数据类型:在SQL Server 2012中,如何从视图、函数或存储过程中获取列名和数据类型?,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我可以通过以下方式从数据库表中获取列名和数据类型: SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.columns WHERE TABLE_NAME = 'xxx' 如何从视图、函数或存储过程中获取列名和数据类型?我想我必须使用每种方法的结果来获得它们,但我不确定 感谢您的帮助查看专栏: SELECT * FROM sys.columns c where c.object_id = OBJECT_ID('<schema>
SELECT COLUMN_NAME, DATA_TYPE
FROM information_schema.columns
WHERE TABLE_NAME = 'xxx'
如何从视图、函数或存储过程中获取列名和数据类型?我想我必须使用每种方法的结果来获得它们,但我不确定
感谢您的帮助查看专栏:
SELECT * FROM sys.columns c where c.object_id = OBJECT_ID('<schema>.<view name>')
从sys.c列中选择*,其中c.object\u id=object\u id('.')
表值函数的列:
SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS rc WHERE rc.TABLE_NAME = '<udf name>'
从信息\u SCHEMA.ROUTINE\u列rc中选择*其中rc.TABLE\u NAME=''
存储过程的列
对于SQL server 2012及更高版本:
SELECT name, system_type_name
FROM sys.dm_exec_describe_first_result_set_for_object
(
OBJECT_ID('<shcema>.<sp name>'),
NULL
);
选择名称、系统类型\u名称
从sys.dm_exec_描述_对象的第一个结果集
(
对象ID('.'),
无效的
);
摘自。阅读此处的答案,了解可能的方法(例如2012年之前)。查看列也可以在信息\u schema.columns中找到。有关SP,请参阅