2011-08-17 3 views
7

Есть ли способ получить максимальное значение, которое может быть сохранено в bigint без его жесткого кодирования?max значение представлено bigint

Есть ли функция или константа, которая возвращает/содержит это значение?

ответ

7

См. Ответ, указанный в this similar question. Насколько я знаю, нет никакого способа программно найти ответ, который вы ищете.

Основываясь на комментариях, которые вы отправили на другой ответ, это позволит вам только изменить свои значения в одном месте, а не в нескольких местах.

+0

Да! Это правильно! Я тоже думал об этом решении, но мне нужно было убедиться, что для этого нет встроенных средств. –

15

BIGINT всегда будет поддерживать

-2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 

SQL Server TSQL не определяет это как константа, но она всегда будет -2^63 до 2^63 - 1

Ref .: int, bigint, smallint, and tinyint (Transact-SQL)

+1

bigint всегда будет 8 байтов. ВСЕГДА. –

+0

Так что же вы делаете с этим bigint? –

+7

@Corovei - они добавят новый тип данных, например 'HUGEint', прежде чем они изменят существующий тип данных. – JNK

3

Вы также можете создать простой определенная пользователем функция, которая возвращает максимальное значение BigInt:

CREATE FUNCTION maxbigint() RETURNS bigint 
AS 
BEGIN 
    RETURN CAST(0x7FFFFFFFFFFFFFFF AS bigint) 
END 
GO 

Затем вы можете использовать его везде, где вы хотите, запустив его: dbo.maxbigint().

Смежные вопросы