Search code examples
sqlsql-serverauto-increment

SQL-How to Insert Row Without Auto incrementing a ID Column?


I have a table that has a forced auto increment column and this column is a very valuable ID that is retained through out the entire app. Sorry to say it was poor development on my part to have this be the auto incrementing column.

So, here is the problem. I have to insert into this table an ID for the column that has already been created and removed from the table. Kind of like resurrecting this ID and putting it back into the table.

So how can I do this programatically do this without turning the column increment off. Correct me if I am wrong, if I turn it off programatically, It will restart at 0 or 1 and I don't want that to happen...


Solution

  • If you are in Microsoft SQL Server, you can "turn off" the autoIncrementing feature by issuing the statement Set Identity_Insert [TableName] On, as in:

      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