【发布时间】:2014-07-25 08:32:50
【问题描述】:
我对此进行了研究,发现 SQL Server 中的 text 列可以存储超过 8000 个字符。但是当我在文本列中运行以下插入时,它只插入了 8000 个字符:
UPDATE a
SET [File] = b.Header + CHAR(13) + CHAR(10) + d.Detail + c.Trailer + CHAR(13) + CHAR(10) + CHAR(26)
FROM Summary a
JOIN #Header b ON b.SummaryId = a.SummaryId
JOIN #Trailer c ON c.SummaryId = a.SummaryId
JOIN #Detail d ON d.SummaryId = a.SummaryId
WHERE
a.SummaryId = @SummaryId
我正在尝试生成一个固定宽度的平面文件,每行的长度应为 3900 个字符,并且它们位于相应的临时表中。但是当我在永久表中插入时,预告数据被截断。
我正在添加 char(10) + char(13) 以添加回车和换行以及 char(26) 作为文件结尾,看起来他们正在向固定宽度布局添加字符。
【问题讨论】:
-
ntext、text和image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。 See details here -
@marc_s 你的回答也是正确的,我的初始测试没有达到 8000 个字符的限制,在我的回答中添加了解释。
标签: sql sql-server-2008 flat-file