Максимальная длина символа в простой таблице изменилась. Зачем? - PullRequest
0 голосов
/ 26 октября 2018

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

create table DepartmentYT (
    Department_ID int,
    Department_Name varchar (255)) 

Затем я добавил к ней данные ниже (что соответствует максимальной длине символа для названия отдела выше):

insert into DepartmentYT

values

(1, 'IT'),
(2, 'Sales')

Однако, когда я выполнял этот запрос сегодня, из таблицы ничего не возвращалось

select * from DepartmentYT

Поэтому я попытался вставить данные обратно в:

insert into DepartmentYT

values

(1, 'IT'),
(2, 'Sales')

Но яя получил сообщение об ошибке «Строковые или двоичные данные будут усечены. Оператор завершен», что, как я понимаю, происходит при попытке вставить данные, длина которых превышает максимальную, указанную для типа данных.

Затем я запустил этот код, чтобы проверить максимальную длину символов, и заметил, что тип данных varachar DepartmentName теперь имеет максимальную длину символа 1 вместо 255, которые я указал вчера.

select * from information_schema.columns  
WHERE TABLE_NAME = 'DepartmentYT'

COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH Department_ID int NULL Department_Name varchar 1

Кто-нибудь знает, почему это может быть?

Я мог бы бросить стол и воссоздать его, но я хотел бы знать, почему проблема могла возникнуть, и если кто-то испытывал нечто подобное / может знать, почему это произошло.

Заранее спасибо!

1 Ответ

0 голосов
/ 26 октября 2018

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

alter table DepartmentYT alter column Department_Name varchar (255) NULL;

затем я снова вставил данные (используя приведенное ниже утверждение) в таблицу, и она сработала.

insert into DepartmentYT

values

(1, 'IT'),
(2, 'Sales') 
...