SQL sys.tables 格式

-1 sql-server sql-server-2014

我可以获得如下所示的数据库和表:

在此处输入图片说明

但我想要的结果是

在此处输入图片说明

我怎样才能做到这一点?我想改进格式,但我不知道如何。

Aar*_*and 7

为什么这需要在 T-SQL 中完成?演示不是 SQL Server 的工作。由于客户端无论如何都必须遍历这些行以显示它们,因此它可以跟踪它看到的最后一个表,并且只在新行上打印名称,如果它不同。

是的,有多种方法可以单独使用 SQL Server 生成此输出,但我不愿意向您展示它们,因为您可能会使用它们而不是在它所属的地方执行此演示工作。

SELECT
Run Code Online (Sandbox Code Playgroud)

[table] = CASE
  WHEN LAG(t.name,1) OVER (ORDER BY t.name, c.name) = t.name THEN ''
  ELSE s.name + N'.' + t.name
END,

[column] = c.name
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
INNER JOIN sys.columns AS c
ON t.[object_id] = c.[object_id]
ORDER BY t.name, c.name;
Run Code Online (Sandbox Code Playgroud)

  • @Sara 我可能没有说清楚,但是*你真的不应该在数据库中做这个演示工作*。 (6认同)