sql-server - 如何为SQL Server中的每个插入语句生成唯一的ID?

标签 sql-server

我想为我所做的每个插入语句提供一个唯一的 ID,这样我就可以看到哪些行被插入在一起。我更喜欢唯一的“插入 ID”从 1 开始,然后增加 1,就像行的 IDENTITY(1,1) 一样。

有没有像IDENTITY这样简单的方法来做到这一点?

CREATE TABLE [dbo].[factTrade] 
(
      [ID] [int] IDENTITY(1,1) NOT NULL,
      [insertedID] [int] NOT NULL,
      [quantity] [int] NOT NULL,
      [price] [decimal](20, 10) NOT NULL
)

INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (1, 6, 2.5), (1, 4, 3.7), (1, 3, 4.1), (1, 7, 8.5),

INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (2, 5, 5.2), (2, 1, 4.6)   

最佳答案

这不是您要求的解决方案,但您可以添加具有默认时间戳的列来查找同时插入的所有行。

ALTER TABLE dbo.factTrade 
ADD InsertDate DATETIME NOT NULL DEFAULT (GETDATE())

关于sql-server - 如何为SQL Server中的每个插入语句生成唯一的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37440039/

相关文章:

c# - LINQ to SQL,从继承类中选择

sql-server - 在 MS SQL 中创建 "date updated"列?

sql-server - 使用 SSIS 将 SQL Server 表/ View 以 Parquet/CSV/JSON 格式加载到 Azure Data Lake。灵活的文件目标任务不断抛出错误

sql-server - SQL Server 在安装 witch chocolatey 时无法授权用户(通过 chef)

sql - ALTER 存储过程(不做任何更改)导致其运行速度减慢 20 倍

sql-server - 在 SQL 中给定多个约束条件下,如何找到具有相同值的连续行数?

sql - 输出 Inserted.Id 和另一个字段

sql - 将查询转换为SQL Server语法

sql - 使用另一个表中的数据创建计算列

java - 有什么方法可以知道 Resultset 包含多少行? Java 和 MSSQL