SQL Server - 为什么列不显示完整字符串?

时间:2016-05-19 00:24:18

标签: sql sql-server sql-server-2008 ssms

我在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的存储过程。因此,通过存储过程完成的任何插入都是截断的,因为存储过程而不是表上设置了数据类型限制。如果我在不使用存储过程的情况下插入任何内容,它将按预期工作。

2 个答案:

答案 0 :(得分:0)

尝试为所选字段设置别名

SELECT FullName as [FullName               .] FROM YourTable

别名将扩展列宽。

答案 1 :(得分:0)

尝试将列的数据类型更改为VARCHAR