答案 0 :(得分:6)
由于数据类型的长度,它修复了字符串的自动填充。请考虑以下事项:
DECLARE @Test CHAR(10), @Test2 CHAR(10)
SET @Test = 'test'
SET @Test2 = 'Test2'
SELECT LEN(@Test), LEN(@Test + '_') - 1, LEN(@Test2), LEN(@Test2 + '_') - 1
这将分别返回4,10,5和10。即使没有为@Test使用尾随空格,它仍然保持其长度为10.如果LEN没有修剪尾随空格,那么LEN(@test)
和LEN(@Test2)
将是相同的。通常人们会想知道有意义数据的长度,而不是自动填充的长度,因此LEN会删除尾随空白。有一些解决方法/替代方案,这不是必需的行为。
答案 1 :(得分:-1)
非变量fiels中的空格填充,如
CREATE TABLE tblSomething ( variable_length varchar(20), non_var_lenght char(10) );