devxlogo

Generate Numbers

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.

See also  How to Create and Deploy QR Codes Online: A Comprehensive Guide
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist