9
|
Matt Mitchell · 技术社区 · 16 年前 |
![]() |
1
25
解决方案是:
RTRIM是必需的,因为否则将为字符串连接选择整个[文件名]列,即如果它是varchar(20)列,并且文件名只有10个字母长,则它仍将选择这10个字母,然后选择10个空格。当您试图将20+3个字符放入20个字符的长字段中时,这将反过来导致错误。 |
![]() |
2
5
如果列是char(20),mattmitchell的答案是正确的,但是如果列是varchar(20),并且没有显式输入空格,则不是正确的。 如果在不带rtrim函数的char字段上进行尝试,您将得到一个 “字符串或二进制数据将被截断” 错误。 |
![]() |
3
2
我觉得很简单。
编辑:ooh+1至@mattmitchell的RTRIM建议答案。 |
![]() |
4
1
如果原始数据来自一个char列或变量(在插入到该表之前),那么原始数据在成为varchar之前会附加空格。
人生教训:永远不要用炭。 |
![]() |
5
1
我想调整大卫B的“人生课”。我认为它应该是“永远不要将char用于可变长度的字符串值”->char数据类型的使用是有效的,只是不像某些人想象的那样多:) |
![]() |
6
1
尾随空格的神秘性的答案可以在ansi_填充中找到。 有关详细信息,请访问: SET ANSI_PADDING (Transact-SQL) 默认值为ansi_paddin on。这只会在创建列时影响该列,而不会影响现有列。 在运行更新查询之前,请验证数据。它可能已经被破坏了。 运行以下查询以查找已损坏的行:
这些行可能丢失了一些字符,或者没有足够的空间添加文件扩展名。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 1 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
Java · 使用交叉应用同时显示两列 2 年前 |