Auto number

i have alreday have field called ID(unique data is included), i need to make that as auto number and Primary Key.
i try to use some codes but now work. see below
alter table Emp Alter ID1 int identity(1000, 1);
and i try below code also
ALTER TABLE [Emp] ALTER COLUMN [ID] int identity(1000, 1))
showing error called
Incorrect syntax near the keyword 'identity'.


But its showing error can any one help me to solve above issue.thx
LVL 2
lankapalaAsked:
Who is Participating?
 
rmm2001Connect With a Mentor Commented:
Go with what @rrjegan17 was saying with DBCC CHECKIDENT ("EMP", RESEED, 2301) if you want your keys to start at 2301 after you run this script.

Easiest way to do this though is going to be to recreate the table of sorts to maintain what you already have. Put the current rows that you have into a temp table with the identity (1000, 1) like you wanted, but with identity_insert on so that you can keep the ids already there. Then truncate out your original table. Then modify your ID column. Then identity_insert back into the original table with the new constraints. Remember to always backup your tables before you change any constraints like this in case something goes awol.
CREATE #Table1 ( ID INT IDENTITY (1000, 1), Field1 VARCHAR(50), Field2 VARCHAR(50) )

SET IDENTITY_INSERT #Table1 ON
INSERT #Table1
SELECT ID, Field1, Field2 FROM <YourTable>
SET IDENTITY_INSERT #Table1 OFF

TRUNCATE TABLE <YourTable>

ALTER TABLE <YourTable> DROP COLUMN ID
ALTER TABLE <YourTable> ADD ID INT IDENTITY(1000, 1)

SET IDENTITY_INSERT <YourTable> ON
INSERT <YourTable> (ID, Field1, Field2)
SELECT ID, Field1, Field2
FROM #Table1
SET IDENTITY_INSERT <YourTable> OFF

DROP #Table1

Open in new window

0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
You can't alter a column and add identity property for that column.
Instead you can drop the existing column and create new column named ID with Identity property

alter table Emp Drop column ID;
ALTER TABLE [Emp] ADD [ID] int identity(1000, 1)

If you have data loaded into your Emp table, then create a new column named ID_new and then rename it to ID once ID values are autogenerated.
0
 
lankapalaAuthor Commented:
After that i try below code
ALTER TABLE [EMP] ALTER COLUMN [ID] INT NOT NULL;
ALTER TABLE [EMP] ADD PRIMARY KEY (ID);
Above code is worked properly

this below code is not working
SET IDENTITY_INSERT [Main] ON

i need to make ID cloumn as a Auto number .(i need to keep previous numbers) and when entering data need to create auto number from last previoud number for example last number is showing in Previous numbers 2301, then i need to start auto number 2302.thx
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
lankapalaAuthor Commented:
rrjegan17: i need to keep previous numbers. is it possible to create new auto number after that possible to insert previous numbers to new auto number fields.thx
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
If you want to start it from 2301 then this would do:

DBCC CHECKIDENT ("EMP", RESEED, 2301);
0
 
lankapalaAuthor Commented:
its showing Error called 'EMP' does not contain an identity column.
0
 
SAMIR BHOGAYTAFreelancer and IT ConsultantCommented:
don't write this query

ALTER TABLE [Emp] ALTER COLUMN [ID] int identity(1000, 1))

Write this query

ALTER TABLE Emp
ALTER COLUMN ID
ADD CONSTRAINT IDENTITY(1000,1)
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
Have you created Identity column on EMP table using the statements given earlier.
0
 
lankapalaAuthor Commented:
showing error
samirbhogayta
Incorrect syntax near the keyword 'CONSTRAINT'.
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
lankapala,

Splitting points with my comments at least as Assisted solution should have been fair..
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.