Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除和回收SQL中的自动递增值_Sql_Sql Server - Fatal编程技术网

删除和回收SQL中的自动递增值

删除和回收SQL中的自动递增值,sql,sql-server,Sql,Sql Server,在我的一个数据库中 一个表允许说活动记录有一列具有自动递增的值,或者说标识列 现在,该表中的记录已被删除,可以说已删除记录表 现在。我希望它返回到原始表活动记录 这是否可以移动到具有原始标识的已删除记录的原始表 因为我想维护我还没有删除的其他关系,以及已删除的记录。这是因为用户可能错误地删除了记录。所以我想允许他们回收记录 这有可能吗 例如 我在活动记录中插入记录。因此,自动增量值将为1、2、3、4,依此类推 现在我删除记录2并将该记录移动到已删除的记录 现在用户想要它回来。但是,如果我将该记录

在我的一个数据库中

一个表允许说活动记录有一列具有自动递增的值,或者说标识列

现在,该表中的记录已被删除,可以说已删除记录表

现在。我希望它返回到原始表活动记录

这是否可以移动到具有原始标识的已删除记录的原始表

因为我想维护我还没有删除的其他关系,以及已删除的记录。这是因为用户可能错误地删除了记录。所以我想允许他们回收记录

这有可能吗

例如

我在活动记录中插入记录。因此,自动增量值将为1、2、3、4,依此类推

现在我删除记录2并将该记录移动到已删除的记录

现在用户想要它回来。但是,如果我将该记录插入活动记录,由于自动递增,它的值将为5。但是我的值应该保留为2。

您可以指定,以便使用提供的值而不是自动指定的值。必须指定包含标识列的显式列列表。例如:

SET IDENTITY_INSERT dbo.ActiveRecords ON;
INSERT INTO dbo.ActiveRecords(RecordID, OtherData)
SELECT RecordID, OtherData
FROM dbo.DeletedRecords
WHERE RecordID = 2;
SET IDENTITY_INSERT dbo.ActiveRecords OFF;

用您正在使用的数据库标记您的问题。此外,示例数据和所需结果也会有所帮助。您可以共享您的表结构吗?请改用is_deleted标志。不要删除任何内容。我不想使用flag。因为我想减少主表中不必要的记录。之后它会从下一个数字继续吗?下一个标识值将保持不变,除非其中一个插入值超过下一个标识值。这种情况在本用例中不会发生。