使用BIGINT列

时间:2018-05-08 10:38:36

标签: sql-server sql-insert bigint

我正在尝试将大量CSV文件插入SQL Server(2016)表中。其中一个CSV文件包含空值,例如:

ID, VALUE, DATE
235425, 34, '2018-05-08'
234567, , '2018-05-08'
233456, 67, '2018-05-08' 

我正在运行的进程尝试将此值插入BIGINT列,并且空值似乎正在中断该进程,从而导致以下错误消息:

  

将数据类型nvarchar转换为bigint时出错

有人能说明调试/解决此问题的最佳步骤吗?

1 个答案:

答案 0 :(得分:0)

根据经验,您应该首先将所有数据按原样插入到临时表中。这有两个好处:

  1. 从文件进入SQL服务器时没有数据丢失
  2. 然后,您可以使用比任何外部进程快得多的SQL查询来操作登台表。
  3. 您还可以使用带有TRY_PARSE或TRY_CONVERT或TRY_CAST函数的查询来插入如下数据

    INSERT INTO Tbl
    SELECT ID,
    Value= TRY_CAST(Value as bigint),
    Date= TRY_CAST(Date as date)
    FROM stagingTbl