Sql server 如何在SQL Server中显示所有表名,后跟所有列名?

Sql server 如何在SQL Server中显示所有表名,后跟所有列名?,sql-server,sql-server-2008,sql-server-2005,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2005,Sql Server 2012,我的要求是显示一次表名,后跟该表的所有列名。我不能那样做。我希望它是通过查询本身而不是存储过程来完成的。它总是用列名重复表名。 我希望表名(实体)显示一次,所有列名(属性)都显示在该表名(实体)下。然后是下一个表名(实体),后跟它的列名(属性)等等 提前感谢。当您将表连接到列时,每一行都有一个表名和一个列名。当表的第一列出现时,您希望显示表名,并在下一行显示列名。当该表的第二列(以及所有其他)出现时,您只想显示列名。要知道是否正在查看表的第一列名称,必须对表组中的行进行编号。当行号为1时,处理的

我的要求是显示一次表名,后跟该表的所有列名。我不能那样做。我希望它是通过查询本身而不是存储过程来完成的。它总是用列名重复表名。 我希望表名(实体)显示一次,所有列名(属性)都显示在该表名(实体)下。然后是下一个表名(实体),后跟它的列名(属性)等等


提前感谢。

当您将表连接到列时,每一行都有一个表名和一个列名。当表的第一列出现时,您希望显示表名,并在下一行显示列名。当该表的第二列(以及所有其他)出现时,您只想显示列名。要知道是否正在查看表的第一列名称,必须对表组中的行进行编号。当行号为1时,处理的是组中的第一列

试试这个:

SELECT case when row_number() over (partition by t.name order by  t.name)=1 then
     t.name + char(13)  + char(9) + c.name
else
    char(9) + c.name
end as Columns

FROM sys.tables AS t
INNER JOIN sys.columns c 
    ON t.OBJECT_ID = c.OBJECT_ID

ORDER BY t.name
, c.name
阿尔伯特