我想将.txt文件数据插入到我的sql-server db中。我在.txt文件中使用和不使用PK-Variable时尝试了它都会给我一个错误。 我的问题:
BULK INSERT DB.Schema.Table FROM'C:\ Users \ test.txt'WITH (FIELDTERMINATOR =';')GO
批量加载数据转换错误(类型不匹配或无效字符 对于第1行,第1列(PK_ID)的指定代码页。消息4864, 16级,1号国家,1号线
Msg 4864,Level 16,State 1,Line 1批量加载数据转换错误 (为指定的代码页键入不匹配或无效字符) 第1行,第1列(PK_ID)。 Msg 2627,Level 14,State 1,Line 1 Violation PRIMARY KEY约束'PK_Table'。无法插入重复键 对象'dbo.Table'。重复键值为(1)。声明有 已被终止。
.txt文件内容的一个示例:
PK_ID; VNAME; n名称;用户名;性别
1;史密斯; Smither; SM;雄
2;添;蒂莫; TI;雄
AutoIncrem已开启。
答案 0 :(得分:1)
看看你的例子.txt。文件内容,我认为你将标题作为一行加载到表中。尝试:
BULK INSERT DB.Schema.Table FROM 'C:\Users\test.txt' WITH
(FIELDTERMINATOR = ';',
FIRSTROW=2)
GO
答案 1 :(得分:1)
我的解决方案:我无法解决上述问题。一些ppl说将ID作为列名放入txt文件并保持条目打开(如(,Hans,Maier)),对我来说没有用。我发现正确的方法是创建一个临时表。登台表只是一个没有主键的普通表,您可以在其中批量插入数据。在这里,您可以根据需要操作数据。之后,将该临时表中的数据插入到所需的表中。 Insert Data from one table to another很好地描述了如何做到这一点。好处是您可以更新表,因为批量插入只是为您提供了插入数据而不是更新的选项。