为什么这需要在 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)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |