从SQL Server中的select查询中获取列名

时间:2015-08-19 11:32:42

标签: sql sql-server

我在SQL Server中有这样的选择:

Select name, email, username, tel 
from ViewName

我想从该选择中获取列名列表。

注意:

1。我没有表名

2. 选择查询是动态的

选择查询在视图中

2 个答案:

答案 0 :(得分:1)

试试这个:

  

我希望这会动态运行,它会选择所有columns   取决于您在Table_View_Name中传递的parameter

declare @tab varchar(max)='Your_Dynamic_Table_View_Name'
declare @txt varchar(max)='SELECT COLUMN_NAME FROM information_schema.columns WHERE table_name ='+@tab


declare @columns varchar(max)=(SELECT 
  STUFF((
    SELECT ', ' + COLUMN_NAME
    FROM information_schema.columns where table_name=@tab
    FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
  ,1,2,'') AS NameValues)


exec('select '+@columns+' from '+@tab)

答案 1 :(得分:0)

试试这些..

sp_help 'viewName'

select c.* from syscolumns c inner join sysobjects o on o.id=c.id where o.name='viewName'