2011-11-29 92 views
2

我想使用批量插入将电子邮件通信导入到数据库表中,但我似乎无法保留CR和LF字符。让我们考虑以下几点:SQL Server - 大容量插入,不会丢失CR或LF字符

CREATE TABLE myTable (
    Email_Id int, 
    Email_subject varchar(200) NULL, 
    Email_Body TEXT NULL 
) 

BULK INSERT语句有以下几点:

codepage = '1250', 
fieldterminator = '<3P4>', 
rowterminator = '<3ND>', 
datafiletype = 'char' 

该文件包含完整的电子邮件(包括CR和LF字符)。我想导入数据并包含CR和LF字符。我已经读过BULK INSERT将每个条目视为单行,但是这是否意味着它会去掉CR和LF字符?如果是这样,我可以用什么来导入这个CSV文件?我没有访问SSIS,我宁愿使用SQL代码来做到这一点。

示例数据:

11324<3P4>Read this email because it's urgent<3P4>Haha John, 

I lied, the email was just to mess with you! 

Your Nemesis, 
Steve 

P.S. I still hate you! 
<3ND> 
11355<3P4>THIS IS THE LAST STRAW<3P4>Steve, 

I have had it with you stupid jokes, this email is going to the manager. 

Good day, 
John 
<3ND> 

回答

1

应该与回车换行和进口,即使你没有看到他们在一些工具。我们将以这种方式导入XSL,并保留所有行格式。

+0

乔是对的。您可能无法在Management Studio中的网格视图中看到它们,但是如果切换到文本视图或从该字段复制数据并在文本板或电子邮件客户端等中查看它们,您应该会看到它们。 –

+0

我有复制记事本++中的文本,我没有看到CR或LF,我会尝试导出结果,但我期望得到相同的结果。 – alexstr

+0

你是如何把文本拿出来比较的?一些工具将剥离行结束。 – Joe