我有一个包含格式化文本的文本文件(txt)(只是换行符,回车符和制表符) 它还包含德语字符。
我想在T-SQL中使用批量插入注释将文本文件读入数据库表中的一个字段。
我跑了这个命令:
CREATE TABLE #MyTestTable (
MyData NVARCHAR(MAX)
)
BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'
SELECT * FROM #MyTestTable
问题是它将文本文件的每一行读入Temp表中的新行。我希望它将整个文件(格式化和全部)读成一行。
此外,德语字符似乎丢失了 - 取而代之的是结果视图中的不可打印字符默认值。
有任何想法我怎么能实现这个目标?
感谢。
答案 0 :(得分:5)
您可以使用ROWTERMINATOR
和CODEPAGE
参数。默认行终止符是'\ r \ n'。对于CODEPAGE,您需要知道原始文件的编码和数据库的默认排序规则。
BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'
WITH (ROWTERMINATOR = '\0',
CODEPAGE = 'ACP')
答案 1 :(得分:2)
使用此:
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
|
是您的列分隔符。
答案 2 :(得分:0)
这真的很需要一些小的编程工作 - 一个小时左右的工作,加上简单的测试和运行所需的时间。