我有一个SQL Server电话号码字段,定义为varchar(20)。像'800-555-1212'这样的电话号码没有问题,但像'(800)555-1212'这样的电话号码会导致“数据被截断”错误。为什么会这样?
答案 0 :(得分:4)
该示例插入到以这种方式定义的字段(我运行测试)。
您可能会有一些不可见的字符添加到长度,如制表符和回车符。
或者你可能有一个计算字段(或触发器中的代码)基于该字段(我们有一个phone_number_stripped字段来存储数字)已经解决了剥离 - 但没有(或)。
答案 1 :(得分:3)
值可能与该值“相似”,但在两端填充空格。
确保您的软件处理该案例。我建议允许空间,但自动修剪它。