我昨天使用以下代码创建了一个简单表:
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')
但是我收到一条错误消息,提示“字符串或二进制数据将被截断。 语句已终止”,据我了解,当您尝试插入超出为数据类型指定的最大长度的数据时,就会发生这种情况。
然后我运行此代码以检查字符的最大长度,并注意到DepartmentName varachar数据类型现在的最大字符长度为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
有人知道为什么会这样吗?
我可以删除表并重新创建它,但是我想知道为什么可能会发生此问题,以及是否有人经历过类似的事情/可能知道为什么会发生此问题。
提前谢谢!
答案 0 :(得分:0)
仍然不确定为什么最大字符长度会发生变化,但是我使用了此语句来增加长度
alter table DepartmentYT alter column Department_Name varchar (255) NULL;
然后我将数据(使用下面的语句)重新插入表中,并且可以正常工作。
insert into DepartmentYT
values
(1, 'IT'),
(2, 'Sales')