Ошибка арифметического переполнения при преобразовании выражения в тип данных int. Как мне решить эту проблему? - PullRequest
0 голосов
/ 30 августа 2018

Это код, который создал таблицу.

CREATE TABLE CUSTOMERS
(
    Customer_ID INT NOT NULL,
    CHECK(Customer_ID <= 11),
    First_Name varchar(20) NOT NULL,
    Last_Name varchar(30),
    Home_Street varchar(30),
    Home_City varchar(20),
    Home_State varchar(2),
    Home_Zip varchar(5),
    PhoneNumber varchar(11) NOT NULL
);

ALTER TABLE CUSTOMERS
ADD CONSTRAINT PK_CUSTOMERS PRIMARY KEY(Customer_ID);

Затем я пытаюсь вставить данные (используя этот код) в таблицу, и именно здесь я получаю эту ошибку.

INSERT INTO dbo.CUSTOMERS(Customer_ID, First_Name, Last_Name, Home_Street, Home_City, Home_State, Home_Zip, PhoneNumber)
VALUES (11223344556, 'John', 'Doe', '1234 Hand Street', 'Wahiawa', 'HI', 96786, 2535551267);

Что я делаю не так и что я могу сделать, чтобы решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Проблема может быть связана с CHECK (Customer_ID <= 11), поскольку целочисленный тип данных id Customer_ID сервер может проверять на целочисленную проверку, а не на проверку длины. Попробуйте изменить валидацию. </p>

0 голосов
/ 30 августа 2018

Как я понимаю, вы проверяете длину Customer_ID <=11, поэтому вы должны указать len(Customer_ID)<=11, что это сработает, и вы должны изменить тип данных Customer_ID int на bigint

CREATE TABLE CUSTOMERS
    (
    Customer_ID bigINT NOT NULL,
    CHECK(len(Customer_ID)<=11),
    First_Name varchar(20) NOT NULL,
    Last_Name varchar(30),
    Home_Street varchar(30),
    Home_City varchar(20),
    Home_State varchar(2),
    Home_Zip varchar(5),
    PhoneNumber varchar(11) NOT NULL
    );
    ALTER TABLE CUSTOMERS
    ADD CONSTRAINT PK_CUSTOMERS
    PRIMARY KEY(Customer_ID);

    INSERT INTO dbo.CUSTOMERS(Customer_ID,First_Name,Last_Name,Home_Street,
    Home_City,Home_State,Home_Zip,PhoneNumber)
    VALUES(11223344556,'John','Doe','1234 Hand Street', 
    'Wahiawa','HI',96786,2535551267);
0 голосов
/ 30 августа 2018

Вам нужно, чтобы идентификатор клиента был bigint:

CREATE TABLE CUSTOMERS
(
Customer_ID BIGINT NOT NULL,
CHECK(Customer_ID<=11),
First_Name varchar(20) NOT NULL,
Last_Name varchar(30),
Home_Street varchar(30),
Home_City varchar(20),
Home_State varchar(2),
Home_Zip varchar(5),
PhoneNumber varchar(11) NOT NULL
);
ALTER TABLE CUSTOMERS
ADD CONSTRAINT PK_CUSTOMERS
PRIMARY KEY(Customer_ID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...