我有一个包含三列Category
的表ID (int), Name (nchar 150), Description (nchar 500)
,当我尝试使用此SQL查询SELECT * FROM [CATEGORY] FOR XML PATH
转换为xml时,我得到了这样的结果:
<idCat>1</idCat>
<CatName>Cat 1 ... 100 space character </CatName>
<CatDesc>Desc 1 ... 500 space character </CatDesc>
答案 0 :(得分:4)
问题是源表定义。
您的姓名和说明在现实中显然不是固定的长度,因此您不应该使用固定长度的数据类型。它们将用尾随空格填充以填充声明的长度。这意味着即使实际值更短,每行也会消耗1,300个字节。
将nchar
列更改为nvarchar
,并通过在两列上使用rtrim
运行更新语句来删除已添加的尾随空格。
UPDATE Category
SET Name = RTRIM(Name), Description = RTRIM(Description)