小编cke*_*rth的帖子

为什么 SQL Server 2008 R2 在使用批量插入时插入无效的日期时间?

我想 在 SQL Server 2008 R2 上使用T-SQL BULK INSERT插入带有可选日期时间值(每行)的行。

一张表可能如下所示:

CREATE TABLE [dbo].[tbl_bulk_insert_datetime_issue] (
    [id] [int] NOT NULL,
    [description] [varchar](20) NOT NULL,
    [datetime] [datetime] NULL,
CONSTRAINT [pk_bulk_insert_datetime_issue] PRIMARY KEY CLUSTERED (
    [id] ASC
))
Run Code Online (Sandbox Code Playgroud)

插入批次:

BULK
INSERT [dbo].[tbl_bulk_insert_datetime_issue]
FROM 'C:\temp\bulkinsertsample.csv'
WITH
(
    FIELDTERMINATOR=';'
)
Run Code Online (Sandbox Code Playgroud)

如果我要插入以下 CSV 内容:

1;row01;
2;row02;20130401
3;row03;
4;row04;20130515
Run Code Online (Sandbox Code Playgroud)

表的内容已按预期解析和插入:

id          description          datetime
----------- -------------------- -----------------------
1           row01                NULL
2           row02                2013-04-01 00:00:00.000
3           row03                NULL
4           row04                2013-05-15 00:00:00.000
Run Code Online (Sandbox Code Playgroud)


但是如果 CSV 文件包含可选日期时间的无效数据

1;row01;
2;row02;20130401
3;row03;not_a_datetime …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2008-r2 datetime bulk-insert

5
推荐指数
1
解决办法
3218
查看次数

标签 统计

bulk-insert ×1

datetime ×1

sql-server-2008-r2 ×1

t-sql ×1