sql - 批量插入期间会出现其他字符

标签 sql sql-server-2005 tsql bulkinsert

我正在尝试将 csv 文件中的第一行批量插入到只有一列的表中。
但是我在开始时得到了一些额外的字符('n++'),如下所示:

n++First Column;Second Column;Third Column;Fourth Column;Fifth Columnm;Sixth Column

CSV 文件内容如下:
First Column;Second Column;Third Column;Fourth Column;Fifth Columnm;Sixth Column

你可以找到 test.csv 文件 here

这是我用来获取表中第一行数据的代码
declare @importSQL nvarchar(2000)
declare @tempstr varchar(max)
declare @path varchar(100)  

SET @path = 'D:\test.csv'    

CREATE TABLE #tbl (line VARCHAR(max))

SET @importSQL = 
'BULK INSERT #tbl 
FROM ''' + @path + ''' 
WITH ( 
LASTROW = 1,
FIELDTERMINATOR = ''\n'',
ROWTERMINATOR = ''\n''
)' 

EXEC sp_executesql @stmt=@importSQL 

SET @tempstr = (SELECT TOP 1 RTRIM(REPLACE(Line, CHAR(9), ';')) FROM #tbl)

print @tempstr
drop table #tbl

知道这个额外的“n++”来自哪里吗?

最佳答案

SQL Server 2005 和 2008 似乎不支持 UTF-8 文件,它只会在版本 11 中可用!

https://connect.microsoft.com/SQLServer/feedback/details/370419/bulk-insert-and-bcp-does-not-recognize-codepage-65001

关于sql - 批量插入期间会出现其他字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436021/

相关文章:

sql - PostgreSQL 上的计数估计

mysql - 在 MySQL 查询中将部分非数字文本转换为数字

sql - GROUP BY 同一列中的多个值

sql-server-2005 - SQL Server Management Studio 2005 "Remember Password"不起作用

SQL 合并。退出时更新,不退出时插入,在存储过程中使用变量

MySQL查询以获取所有最高ID

使用 Flex 时,SQL Server 需要很长时间才能将数据返回到 ColdFusion

sql-server - 使用带有 NVarchar(50) 与 NVarchar(255) 列的索引?

mysql - 查找 1.00 美元以内的货币/金额

sql - 根据另一个表中的信息构建行更改的历史跟踪