我在SQL Server 2008中有一个表,其中包含以下列:
Column Name|Data Type |Allow Nulls
FullName |nvarchar(250)|Yes
当我尝试插入一个超过10个字符的新全名时,会切断10个字符后的任何内容。
例如:
INSERT INTO ..(FullName)
VALUES ('Apple EnPearSSSS')
数据库中的结果:
FullName |
Apple EnPe |
预期结果:
FullName |
Apple EnPearSSSS |
为什么列限制为10个字符?
为所选字段添加别名后的实际结果:
FULLNAME .|
1|Apple EnPe |
2|Test vriri |
3|new lfll |
4|abcdefghij |
解决方案: 这里的问题是插入FullName,存在一个@FullName限制为nvarchar10的存储过程。因此,通过存储过程完成的任何插入都是截断的,因为存储过程而不是表上设置了数据类型限制。如果我在不使用存储过程的情况下插入任何内容,它将按预期工作。
答案 0 :(得分:0)
尝试为所选字段设置别名
SELECT FullName as [FullName .] FROM YourTable
别名将扩展列宽。
答案 1 :(得分:0)
尝试将列的数据类型更改为VARCHAR
。