【发布时间】:2017-02-13 11:28:30
【问题描述】:
我正在尝试使用 BULK INSERT 插入一些行:
CREATE TABLE Foo (
Id UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT newsequentialid(),
Name NVARCHAR(255) NULL,
CreatedOn DATETIME NOT NULL DEFAULT GETDATE(),
CreatedBy NVARCHAR(255) NOT NULL DEFAULT SUSER_NAME(),
ModifiedOn DATETIME NULL DEFAULT NULL,
ModifiedBy NVARCHAR(255) NULL DEFAULT NULL
);
我从具有 UTF8 编码、分隔符的逗号和行尾的 LF 的 CSV 文件插入:
,Fizz,,,,,
我的 BULK INSERT 语句如下所示:
BULK INSERT Foo
FROM 'C:\foo.csv'
WITH (CODEPAGE = '65001', FIELDTERMINATOR = ',' , ROWTERMINATOR = '0x0a');
但插入行的最后一个字段(ModifiedBy)的值为','(逗号分隔符:
49625A3B-DCF1-E611-8D73-B00594F7CD91 Fizz 2017-02-13 12:04:48.223 sa NULL ,
我做错了什么以及如何让 BULK INSERT 将最终字段插入为 NULL(默认值)而不是 ','?
【问题讨论】:
-
我看到那里有六个逗号,最后一个不是必需的。
标签: sql-server bulkinsert