首页 > 解决方案 > 与每一行一起打印行号或计数器

问题描述

我想打印数据库中所有表的名称,但行号如下:

S.No.  Table Name
-------------------
1.     Products
2.     Orders
3.     OrderDetails
...

我尝试了以下方法,但这给了我总行数。

-- USE [MyDatabase]; -- implied

SELECT @@ROWCOUNT AS [S.No.], 
       Name as [Table Name] 
FROM Sys.Tables;

我想我必须做类似的事情:

@Counter int;
SELECT (SELECT ++@Counter AS [S.No.]), 
       Name AS [Table Name]
FROM Sys.Tables;

但我不太确定确切的语法。你能帮我解决这个问题吗?

我正在使用 Microsoft SQL Server 2014。

标签: sqlsql-serversql-server-2014

解决方案


使用row_number()

SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) as [S.No.], 
       Name as [Table Name] 
FROM Sys.Tables;

推荐阅读