Используя центральную базу данных SQL Server 2000, у меня есть таблица с именем UNIQUE_ID_COUNTER
. Используя следующую структуру таблицы, это содержит несколько строк, поддерживающих уникальный идентификатор, назначенный различным типам объектов, перенаправленным в другую систему.Хранимая процедура SQL Server 2000 получает уникальный номер из уникальной строки идентификатора, избегая проблем с одновременным запросом
UNIQUE_ID INT,
NAME VARCHAR(MAX)
234, "APPLES"
189, "PEARS"
...
Каждый раз, когда хранимая процедура вызывается из клиента UNIQUE_ID
выбирается через NAME
, а затем увеличивается на 1.
Как мы имеем много высоких запросов клиентов в некоторых случаях бахромы, когда несколько клиентов делают этот запрос в то же время мы получаем несколько UNIQUE_ID
с таким же номером.
Как я могу избежать этого, но все же гарантировать, что хранимая процедура вернет правильное значение и увеличит столбец UNIQUE_ID
?
Ваша помощь была бы очень признательна! :)
Простой: пусть ** база данных ** обрабатывает все эти досадные детали с помощью столбца «INT IDENTITY» - тогда у вас никогда не будет дубликатов, вам не нужно беспокоиться о том, чтобы увеличить ваш счетчик - все обрабатывается для вас , –
Приятный один marc_s, я знал, что я уже думал об этом :) – Barbloke6