SQL Server批量插入标识列

时间:2013-07-25 15:17:08

标签: sql sql-server bulkinsert bcp

我正在尝试批量插入到具有标识列的表中。但是我的主机文件包含标识列的空值。当我发出' bcp'命令,我收到错误 -

  

开始复制......

     

SQLState = S1000,NativeError = 0

     

错误= [Microsoft] [SQL Server Native Client 10.0]意外的EOF   在BCP数据文件中遇到

     

SQLState = 23000,NativeError = 515

     

错误= [Microsoft] [SQL Server Native Client 10.0] [SQL Server]不能   将值NULL插入列' UNIQUE_ID',table' xx.dbo.yyy&#39 ;;   列不允许空值。 INSERT失败。

     

SQLState = 01000,NativeError = 3621

     

警告= [Microsoft] [SQL Server Native Client 10.0] [SQL Server]   声明被终止了。

     

BCP副本失败

如果我没有为标识列提供空值,那么我会收到错误 - 在bcp数据文件中遇到意外的EOF。

请帮助将bcp工作批量插入到表中..

1 个答案:

答案 0 :(得分:1)

虽然我建议您先将数据批量插入某个临时表,然后将数据从登台表插入主表。这样您就可以保留标识列。 下一种方法是在主机文件中添加一个额外的id列,并将列保持为空,然后执行批量插入。另外,请确认您是否在批量插入查询中使用了KEEPIDENTITY关键字。