Fix: Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF

Last Updated on October 21, 2020

Updated July 2022: Stop getting error messages and slow down your system with our optimization tool. Get it now at this link
  1. Download and install the repair tool here.
  2. Let it scan your computer.
  3. The tool will then repair your computer.

When you try to insert into a table with an identity column, you may receive an error message indicating that an explicit value cannot be inserted for an identity column in table “Table” when IDENTITY_INSERT is OFF. “This is not the end of the world and it is actually quite easy to get around.

The reason for this error is when you are trying to tell SQL Server what the identifier value for a row in a table should be. If your table has an ID column, SQL Server wants to automatically generate that ID value for you. The error is basically “Hey, I have to generate an ID for you … don’t tell me what it is!”

Only one table in a session can have IDENTITY_INSERT ON at any given time. If this property is already enabled for a table and SET IDENTITY_INSERT ON is issued for another table, SQL Server returns an error message indicating that SET IDENTITY_INSERT is already enabled and reports the table set to ON.

If the inserted value is greater than the current identifier value for the table, SQL Server automatically uses the newly inserted value as the current identifier value.

SET IDENTITY_INSERT is specified at runtime or at runtime, not during scan.

Creating databases and tables

First, create a named database.
Create a table named “Person” using the following code. Table created using “PRIMARY KEY IDENTITY”

Syntax for setting “identity_insert off | of course”

“Set identity_insert off | on” helps us fix this error. The correct syntax for this statement is as follows.

July 2022 Update:

You can now prevent PC problems by using this tool, such as protecting you against file loss and malware. Additionally it is a great way to optimize your computer for maximum performance. The program fixes common errors that might occur on Windows systems with ease - no need for hours of troubleshooting when you have the perfect solution at your fingertips:

  • Step 1 : Download PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista – Microsoft Gold Certified).
  • Step 2 : Click “Start Scan” to find Windows registry issues that could be causing PC problems.
  • Step 3 : Click “Repair All” to fix all issues.


Whereas the first argument is the name of the database in which the table is located. The second argument specifying is the schema to which this table belongs, whose ID value should be set to ON or OFF. The third argument is a table with an identity column.

There are two main ways to insert data into a table without error. They are considered a solution to this error and are described below.

Tell SQL Server what the identifier value should be

If you want to specify ID values ​​for the records you are inserting, you must run a small SQL command to enable ID insertion before running the INSERT statement. Identity inserts allow you to populate the value of an identity column with a specific value.

Allow SQL Server to generate ID

If you don’t care about the identity values ​​for these records, you should let SQL Server only generate the identity values ​​for you. To do this, simply enter the table columns and omit the identity column.

Expert Tip: This repair tool scans the repositories and replaces corrupt or missing files if none of these methods have worked. It works well in most cases where the problem is due to system corruption. This tool will also optimize your system to maximize performance. It can be downloaded by Clicking Here