这是表的架构
Create table dbo.Project
(
ProjectID (int,not null)
ManagerID (int,not null)
CompanyID(int, not null)
Title (nvarchar(50),not null)
StartDate(datetime,not null)
EndDate(datetime,null)
ProjDescription(nvarchar(max))
)
我使用以下 bcp 命令从该表中创建了一个名为 bob.dat 的数据文件,该数据文件大约有 15 行
bcp "Select ProjectID,ManagerID,CompanyID,Title,StartDate from CATS.dbo.Project" queryout "C:\Documents\bob.dat" -Sbob-pc -T -n
还使用以下 bcp 命令创建了一个名为 bob.fmt 的格式/映射文件
bcp CATS.dbo.Project format nul -f C:\Documents\bob.fmt -x -Sbob-pc -T -n
然后我创建了表项目的副本。
Create table dbo.ProjectCopy
(
ProjectID (int,not null)
ManagerID (int,not null)
CompanyID(int, not null)
Title (nvarchar(50),not null)
StartDate(datetime,not null)
EndDate(datetime,null)
ProjDescription(nvarchar(max))
)
我现在要做的是使用 bob.dat 和 bob.format 文件使用以下批量插入语句填充此表 ProjectCopy。
BULK INSERT CATS.dbo.ProjectCopy
FROM 'C:\Documents\bob.dat'
WITH (FORMATFILE = 'C:\Documents\bob.fmt',
LASTROW=5,
KEEPNULLS,
DATAFILETYPE='native');
GO
SELECT * FROM CATS.dbo.ProjectCopy
GO
所以基本上数据文件不包含 EndDate 和 ProjDescription 列的任何数据。我希望这两列保持为空。不幸的是,当我运行批量插入语句时出现以下错误。
Msg 4863, Level 16, State 4, Line 2
Bulk load data conversion error (truncation) for row 1, column 6 (EndDate).
Msg 7399, Level 16, State 1, Line 2
The OLE DB provider "BULK" for linked server "(null)" reported an error.
The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 2
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
(0 row(s) affected)
任何人都知道如何解决这个问题?只是为了告诉你我已经去过这部分的所有人,那里提供的解决方案对我来说并不奏效。 BULK INSERT 列数不一致, 无法确定 BULK INSERT 错误的原因,BULK INSERT 列数不一致