?
Solved

Auto number

Posted on 2010-11-20
10
Medium Priority
?
719 Views
Last Modified: 2012-05-10
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
0
Comment
Question by:lankapala
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34179427
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
 
LVL 2

Author Comment

by:lankapala
ID: 34179428
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
 
LVL 2

Author Comment

by:lankapala
ID: 34179435
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
Get MySQL database support online, now!

At Percona’s web store you can order your MySQL database support needs in minutes. No hassles, no fuss, just pick and click. Pay online with a credit card.

 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34179485
If you want to start it from 2301 then this would do:

DBCC CHECKIDENT ("EMP", RESEED, 2301);
0
 
LVL 2

Author Comment

by:lankapala
ID: 34179540
its showing Error called 'EMP' does not contain an identity column.
0
 
LVL 11

Expert Comment

by:SAMIR BHOGAYTA
ID: 34179545
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
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34179664
Have you created Identity column on EMP table using the statements given earlier.
0
 
LVL 2

Author Comment

by:lankapala
ID: 34180254
showing error
samirbhogayta
Incorrect syntax near the keyword 'CONSTRAINT'.
0
 
LVL 7

Accepted Solution

by:
rmm2001 earned 2000 total points
ID: 34180379
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
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34288403
lankapala,

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

Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you find yourself in this situation “I have used SELECT DISTINCT but I’m getting duplicates” then I'm sorry to say you are using the wrong SQL technique as it only does one thing which is: produces whole rows that are unique. If the results you a…
This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question