Если мы говорим о T-SQL, то ошибка около дня означает, что синтаксис неверен (просто нет ключевого слова enum
в T-SQL), оно должно выглядеть примерно так:
[frequency] VARCHAR(10) NOT NULL,
CONSTRAINT ck_Enum CHECK ([frequency] IN('day','week','semi_month','month','year')),
Учитывая вторую ошибку, которую вы используете в неправильном контексте, SQL не знает тип столбца. Я считаю, что вы хотели написать:
[duration] INT DEFAULT 10 NOT NULL
CONSTRAINT ck_Duration CHECK ([duration] > 0),
С дополнительной проверкой, является ли длительность без знака. Вы должны соблюдать синтаксис языка, потому что у вас есть еще несколько ошибок. Пусть следующий пример для вас:
CREATE TABLE ec_recurring
(
[recurring id] INT IDENTITY NOT NULL
CONSTRAINT pl_recId PRIMARY KEY,
[price] DECIMAL(10, 4) NOT NULL,
[frequency] VARCHAR(10) NOT NULL,
CONSTRAINT ck_Enum CHECK ([frequency] IN('day','week','semi_month','month','year')),
[duration] INT DEFAULT 10 NOT NULL
CONSTRAINT ck_Duration CHECK ([duration] > 0),
[cycle] INT DEFAULT 10 NOT NULL
CONSTRAINT ck_Cycle CHECK ([cycle] > 0),
[trial status] TINYINT DEFAULT 4 NOT NULL,
[trial price] DECIMAL(10, 4) NOT NULL,
[trial frequency] VARCHAR(10) NOT NULL
CONSTRAINT ck_TrialEnum CHECK ([trial frequency] IN('day','week','semi_month','month','year')),
[trial duration] INT DEFAULT 10 NOT NULL
CONSTRAINT ck_TrialDuration CHECK ([trial duration] > 0),
[trial cycle] INT DEFAULT 10 NOT NULL
CONSTRAINT ck_TrialCycle CHECK ([trial cycle] > 0),
[status] TINYINT DEFAULT 4 NOT NULL,
[sort order] INT DEFAULT 11 NOT NULL,
[date created] DATETIME2 NOT NULL,
[date modified] DATETIME2 NOT NULL,
[created by] DATETIME NOT NULL,
[modified by] DATETIME NOT NULL,
[active] TINYINT DEFAULT 4 NOT NULL,
);