简单表中的最大字符长度已更改。为什么?

时间:2018-10-26 11:00:44

标签: ssms-2014

我昨天使用以下代码创建了一个简单表:

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

有人知道为什么会这样吗?

我可以删除表并重新创建它,但是我想知道为什么可能会发生此问题,以及是否有人经历过类似的事情/可能知道为什么会发生此问题。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

仍然不确定为什么最大字符长度会发生变化,但是我使用了此语句来增加长度

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

然后我将数据(使用下面的语句)重新插入表中,并且可以正常工作。

insert into DepartmentYT

values

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