INSERTING YOUR OWN IDENTITIES v7.0 When defining a table with an identity column, it is sometimes necessary to override the system-generated ID and replace it with your own or a legacy ID. There are a few rules you must follow when performing these tasks. Assume the following table structure and scenario: CREATE TABLE TableX (IDCol INT IDENTITY(1,1) NOT NULL, Fname VARCHAR(10) NOT NULL, LName VARCHAR(10) NOT NULLl) Normally, you can INSERT into a table that contains an ID column without specifying the actual ID column in the values list. For example: INSERT INTO TableX VALUES ('John', 'Smith') If you attempt to INSERT into the ID column INSERT INTO TableX VALUES (1, 'John', 'Smith') you should receive an error similar to "An explicit value for the identity column in table 'TableX' can only be specified when a column list is used and IDENTITY_INSERT is ON." Use the following rules to INSERT your own identities. 1. Make use of the SET IDENTITY_INSERT ON|OFF statement. 2. Qualify your INSERT statement with the column name(s). 3. Once completed, turn off the SET IDENTITY_INSERT ON|OFF statement. SET IDENTITY_INSERT TableX ON INSERT INTO TableX (IDCol, Fname, Lname) VALUES (1,'John', 'Smith') INSERT INTO TableX (IDCol, Fname, Lname) VALUES (2,'Mary', 'Doe') INSERT INTO TableX (IDCol, Fname, Lname) VALUES (3,'Steve', 'Martin') SET IDENTITY_INSERT TableX OFF These steps provide a powerful mechanism for inserting legacy IDs as well as your own IDs into a table defined with an identity column.