SQL Server 2008 - 批量将整个文本文件插入到一个字段中

Sim*_*ith 5 t-sql sql-server bulkinsert

我有一个包含格式化文本的文本文件(txt)(只是换行符,回车符和制表符)它还包含德语字符.

我想在T-SQL中使用批量插入注释将文本文件读入数据库表中的一个字段.

我运行了这个命令:

 CREATE TABLE #MyTestTable (
    MyData NVARCHAR(MAX)
 )

 BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'

 SELECT * FROM #MyTestTable
Run Code Online (Sandbox Code Playgroud)

问题是它将文本文件的每一行读入Temp表中的新行.我希望它将整个文件(格式化和所有)读入一行.

此外,德语字符似乎丢失 - 由结果视图中的不可打印字符默认值替换.

任何想法我怎么能实现这个?

谢谢.

erc*_*can 5

您可以使用ROWTERMINATORCODEPAGE参数.默认行终止符是'\ r \n'.对于CODEPAGE,您需要知道原始文件的编码和数据库的默认排序规则.

BULK INSERT [#MyTestTable]
FROM 'D:\MyTextFile.txt'
WITH (ROWTERMINATOR = '\0',
      CODEPAGE = 'ACP')
Run Code Online (Sandbox Code Playgroud)

另请参阅http://msdn.microsoft.com/en-us/library/ms188365.aspx