SQL-如何在不自动递增 ID 列的情况下插入行?

标签 sql sql-server auto-increment

我有一个表,其中有一个强制自动增量列,该列是一个非常有值(value)的 ID,在整个应用程序中都会保留。抱歉,我的开发水平很差,无法将其设置为自动递增列。

所以,问题来了。我必须将已创建并从表中删除的列的 ID 插入到该表中。有点像复活这个 ID 并将其放回表中。

那么我怎样才能以编程方式做到这一点而不关闭列增量呢?如果我错了,请纠正我,如果我以编程方式关闭它,它将在 0 或 1 处重新启动,我不希望这种情况发生...

最佳答案

如果您使用的是 Microsoft SQL Server,则可以通过发出语句 Set Identity_Insert [TableName] On 来“关闭”自动增量功能,如下所示:

  Set Identity_Insert [TableName] On
  -- --------------------------------------------
  Insert TableName (pkCol, [OtherColumns])
  Values(pkValue, [OtherValues])
  -- ---- Don't forget to turn it back off ------
  Set Identity_Insert [TableName] Off

关于SQL-如何在不自动递增 ID 列的情况下插入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049625/

相关文章:

MySQL 使用没有 auto_increment 的递增值填充新列

mysql - MySQL INSERT .. SELECT 语句的 auto_increment 字段值顺序是什么

python - 当一个人创建一个新模型时,应该在哪里放置代码来自动增加 Google App Engine/Django 上的分片计数器?

sql 用自身和额外的字符串更新一个字段

mysql - 如何打印 Perl 的 DBI 填充占位符后执行的 SQL 查询?

mysql - 查询不同的 ID 对

sql - 将数据从 SQL 导出到 XML - NULL 值

sql - 获取任意 3 小时内总计超过 1000 美元的销售记录?

mysql - 从sql文件导入数据库

sql - SQL Server 中带有条件的 Case 语句