Member 13800447 Ответов: 1

Ошибка арифметического переполнения преобразование числового типа в числовой тип данных


Привет, я постоянно получаю ошибку арифметического переполнения при преобразовании числового типа данных в числовой, когда пытаюсь вставить значения в таблицу. Я использую MS Visual Studios.

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

это и есть стол:

CREATE TABLE RESERVATION(
R_RESERVATIONNUM	VARCHAR(7) NOT NULL UNIQUE,
T_TRIPNUM		INTEGER NOT NULL,
R_TRIPDATE		DATE NOT NULL,
R_NUMPERSONS		INTEGER NOT NULL,
R_TRIPPRICE		DECIMAL(3,2) NOT NULL,
R_OTHERFEES		DECIMAL(3,2) NOT NULL,
C_CUSTOMERNUM		VARCHAR(3) NOT NULL,
PRIMARY KEY (R_RESERVATIONNUM),
FOREIGN KEY (T_TRIPNUM) REFERENCES TRIP,
FOREIGN KEY (C_CUSTOMERNUM) REFERENCES CUSTOMER);

вот эта вставка:

INSERT INTO RESERVATION VALUES ('1600001',40,'2018-3-26',2,55.00,0.00,'101');
INSERT INTO RESERVATION VALUES ('1600002',21,'2018-6-8',2,95.00,0.00,'101');
INSERT INTO RESERVATION VALUES ('1600003',28,'2018-9-12',1,35.00,0.00,'103');

1 Ответов

Рейтинг:
1

phil.o

Правильный синтаксис таков

INSERT INTO RESERVATION (R_RESERVATIONNUM, T_TRIPNUM, R_TRIPDATE, R_NUMPERSONS, R_TRIPPRICE, R_OTHERFEES, C_CUSTOMERNUM) VALUES ( ... );

Вы должны указать, какие столбцы и в каком порядке для INSERT заявление, чтобы было ясно, что и куда идет.

Более того, точность, которую вы выбрали для своих десятичных столбцов, кажется немного слишком низкой (всего 3 цифры, слева и справа от десятичной точки). При указанных вами значениях точность должна быть не менее 4, но вы можете перейти к 9, не влияя на количество байтов, используемых для хранения значений.

Пожалуйста смотрите десятичные и числовые числа (Transact-SQL) | Microsoft Docs[^] для получения дополнительной информации.


Maciej Los

5ed!