2015-07-02 3 views
0
CREATE SEQUENCE dbo.Sequence1 
AS decimal 
START WITH 1 INCREMENT BY 0.3 
MINVALUE 2 MAXVALUE 4 
CYCLE; 

Ошибка:CREATE SEQUENCE Ошибка: недопустимое значение 'INCREMENT BY'

недопустимое значение указано для аргумента 'INCREMENT BY' для данного типа данных.

Я хочу создать дробный счетчик. Что не так? Поддержка Node десятичная?

UPD:

Когда я создаю

CREATE SEQUENCE dbo.Sequence1 
AS float 
.... 

SQL Server Management Studio возвращает ошибку:

Объект последовательность 'dbo.Sequence1' должен иметь тип данных INT, BIGINT, smallint, tinyint или десятичный или числовой со шкалой 0 или любым пользовательским типом данных, который основан на одном из вышеуказанных целочисленных типов данных.

Именно поэтому я пытаюсь создать последовательность с типом decimal.

+0

У вас здесь есть несколько интересных вещей. Во-первых, вы определили десятичное число, но вы не определили область или точность. Это означает, что он будет использовать значение по умолчанию. Вы должны всегда определять область действия и точность. Во-вторых, вы начинаете с определения меньше минимального значения. Не совсем уверен, что это будет делать, но это не имеет смысла логически. –

+3

Как Гордон говорит ниже, вы можете использовать только десятичное значение со шкалой 0 (без десятичной точки). Последовательности являются целыми числами. – TheMadDBA

+0

нормально люди ... спасибо. Какие альтернативы? –

ответ

3

Это немного для комментария. documentation довольно специфичны, что create sequence для целых чисел:

[built_in_integer_type | user-defined_integer_type]

Последовательность может быть определена как любое целое число тип. Возможны следующие типы: .

(выделено мной.)

Следовательно, значения с десятичной точкой не допускаются.

decimal допускается только с масштабом 0 (что означает, что нет десятичных точек).