SQL 添加新记录时递增的服务器计数器列
SQL Server counter column that increments when a new record has been added
我正在开发一个存储过程,需要跟踪每天有 运行 的报告。如果一份报告多次 运行,我需要一个每次报告 运行 时递增的列。我不确定如何在不明确命名要跟踪的每个报告的情况下让它跟踪 ReportID 或 ReportName。使用 SQL Server 2012,我们调用 table ProcessMaster。
Time ReportID ReportName (Increment Column)
---- -------- ---------- ------------------
7:00 2145 Job1 1
7:30 2145 Job1 2
7:30 2146 Another 1
8:00 2145 Job1 3
8:30 2146 Another 2
可以选择完全不包含该列,方法是动态生成排名:
SELECT *,
ROW_NUMBER() OVER (PARTITION BY ReportId ORDER BY Time) as IncrementColumn
FROM ProcessMaster
如果您希望存储该字段,您可以选择:
- 编写触发器
- 增加你的应用层
我正在开发一个存储过程,需要跟踪每天有 运行 的报告。如果一份报告多次 运行,我需要一个每次报告 运行 时递增的列。我不确定如何在不明确命名要跟踪的每个报告的情况下让它跟踪 ReportID 或 ReportName。使用 SQL Server 2012,我们调用 table ProcessMaster。
Time ReportID ReportName (Increment Column)
---- -------- ---------- ------------------
7:00 2145 Job1 1
7:30 2145 Job1 2
7:30 2146 Another 1
8:00 2145 Job1 3
8:30 2146 Another 2
可以选择完全不包含该列,方法是动态生成排名:
SELECT *,
ROW_NUMBER() OVER (PARTITION BY ReportId ORDER BY Time) as IncrementColumn
FROM ProcessMaster
如果您希望存储该字段,您可以选择:
- 编写触发器
- 增加你的应用层