Solved

Auto number

Posted on 2010-11-20
10
716 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
 

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
 

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
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
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
 

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
 

Author Comment

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

Accepted Solution

by:
rmm2001 earned 500 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

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

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…
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…

697 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