Christopher Fernandes Ответов: 1

Проверьте, достигнут ли предел bigint


Я разрабатываю веб-приложение, используя ASP.net с#.
Я пытаюсь сгенерировать первичный ключ в таблице в таком формате ID-45000-200 (VARCHAR(900))

Он увеличивается в этом формате
ID-1-1
ID-1-2
ID-1-3
ID-2-1

Я пытаюсь разработать SQL UDF для генерации этого значения идентификатора.
Числовая часть-это BigInt, поэтому я хочу знать, есть ли какой-либо способ проверить, достигнут ли положительный предел максимального значения BigInt в SQL SERVER 2012.

Что я уже пробовал:

Я пробовал жестко кодировать минимальные и максимальные значения в переменных и сверять их с этим, но это кажется глупым. Я хочу знать, есть ли более чистый способ сделать это в SQL Server 2012.

1 Ответов

Рейтинг:
2

Mehdi Gholam

Зачем проверять, bigint это 2^63 ?

Даже если вы создадите 10000 каждую секунду, вы не достигнете предела за 29 миллионов лет!


Christopher Fernandes

Я знаю, что Бигинт-это 2^63. Но по моим оценкам, приложение будет генерировать 250 000 ID каждый день.
Как вы можете видеть, есть 3 части значения ID a)ID b) bigint middle number c) bigint outer number
Поэтому всякий раз, когда внешнее число достигает верхнего предела bigint, я хочу, чтобы оно увеличивало среднее число на единицу и снова устанавливало внешнее число на единицу.

Mehdi Gholam

10000 (/с) * 3600 (с/ч) * 24 (ч/сут) = 864 000 000 /сут