Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: SQL Server
Expertise: Beginner
Jul 15, 1999

Generate Numbers

Question:
I have a field in one of my SQL Server Database tables which I want to increment every time a user enters a new record. I thought about a trigger, but in a multi-user environment the max function may return the wrong number. Is a stored procedure more efficient?

Answer:
There is a built in function called the Identity function that does what you want, but I would recommend that instead of the Identity function, you instead create your own numbering scheme.

In your database, create a table named id, and make its columns id and tablename. Put an update trigger on the table that increments id by one. Fill up this new table with the table name of each of your existing tables, and in the id column put the highest id used in that table.

Now, every time you need an id, you search the id table for the name of the table that needs the id, look up the id, increment it, and use it for the operation that requested it. This works most transparently with integer keys, but it can also work with other key schemes with a little hacking.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date