Basics:
To insert explicit value in the identity column of a table we need to set identity_insert On. Syntax for this is
SET IDENTITY_INSERT tablename ON
Now execute all your insert / update queries
Make sure you set the identity_insert to Off. Syntax for this is
SET IDENTITY_INSERT tablename OFF
Did you know:
Identity insert is session sensitive. If you have an identity_insert On for another table in that session you will get the message " IDENTITY_INSERT is already ON for table 'xxx'. Cannot perform SET operation for table 'tablename'."
To test this you can open another session and try executing the same statement again. You will not get the error message this time.
Option 2:
Step 1: Go to the Table name in the Object Explorer and click on Design.
Step 2: In column Properties, go to 'Identity Specification' and select 'Is identity' as 'No'
Step 3: Click on Save.
Now try the insert/update command.
Still does not work?
Step 1: In Sql Server Management Studio , Go to Tools --> Option and click on Designer.
Step 2: Uncheck "Prevent Saving changes that require table re-creation"
Now you are all set. You can re-execute the queries, it should not give you any problem.
Since we are talking about Identity let me also mention how to reset the identity.
DBCC CHECKIDENT (tablename, reseed, x)
... tablename is the name of the table that needs to be reseeded.
... x is an integer value that is one less than the value you want the indexing to start
Let me know how your experience was. :)
To insert explicit value in the identity column of a table we need to set identity_insert On. Syntax for this is
SET IDENTITY_INSERT tablename ON
Now execute all your insert / update queries
Make sure you set the identity_insert to Off. Syntax for this is
SET IDENTITY_INSERT tablename OFF
Did you know:
Identity insert is session sensitive. If you have an identity_insert On for another table in that session you will get the message " IDENTITY_INSERT is already ON for table 'xxx'. Cannot perform SET operation for table 'tablename'."
To test this you can open another session and try executing the same statement again. You will not get the error message this time.
Option 2:
Step 1: Go to the Table name in the Object Explorer and click on Design.
Step 2: In column Properties, go to 'Identity Specification' and select 'Is identity' as 'No'
Step 3: Click on Save.
Now try the insert/update command.
Still does not work?
Step 1: In Sql Server Management Studio , Go to Tools --> Option and click on Designer.
Step 2: Uncheck "Prevent Saving changes that require table re-creation"
Now you are all set. You can re-execute the queries, it should not give you any problem.
Since we are talking about Identity let me also mention how to reset the identity.
DBCC CHECKIDENT (tablename, reseed, x)
... tablename is the name of the table that needs to be reseeded.
... x is an integer value that is one less than the value you want the indexing to start
Let me know how your experience was. :)
Comments
Post a Comment