【发布时间】:2013-02-03 10:40:03
【问题描述】:
我使用的是 SQL Server Express 2008
当我尝试将 txt 文件中的数据加载到此表中时
create table Clients
(
ClientID int not null IDENTITY (9000,1),
LastName varchar (30)not null,
FirsName varchar (30)not null,
MidInitial varchar (3),
DOB date not null,
Adress varchar (40) not null,
Adress2 varchar (10),
City varchar (40) not null,
Zip int not null,
Phone varchar (30) ,
CategCode varchar (2) not null,
StatusID int not null,
Hispanic BINARY default 0,
EthnCode varchar(3) ,
LangID int,
ClientProxy varchar (200),
Parent varchar (40),
HshldSize int default 1,
AnnualHshldIncome INT,
MonthlyYearly VARCHAR(7) ,
PFDs INT,
WIC BINARY default 0,
Medicaid BINARY default 0,
ATAP BINARY default 0,
FoodStamps BINARY default 0,
AgencyID int not null,
RoutID int ,
DeliveryNotes varchar (200),
RecertificationDate date not null,
Notes text,
Primary Key (ClientID)
);
我用
SET IDENTITY_INSERT Clients2 ON;
BULK INSERT Clients2
FROM 'c:\Sample_Clients.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n'
)
SQL Server Express 出现错误
消息 545,第 16 级,状态 1,第 2 行 当 IDENTITY_INSERT 设置为 ON 或复制用户插入 NOT FOR REPLICATION 标识列时,必须为表“Clients”中的标识列指定显式值。
文件只有一行(现在只是示例数据)我检查了很多次它的一行
数据看起来像这样
13144,Vasya,Pupkin,,1944-10-20,P.O. Box 52,,Wrna,99909,(907) 111-1111,SR,4,0,W,1,,,3,1198,month,0,0,1,0,1,45,,,2011-04-27
任何想法如何解决这个问题?
【问题讨论】:
-
欢迎使用 StackOverflow:如果您发布代码、XML 或数据示例,请 在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上很好地格式化和语法突出显示它! -
您的表有 30 列 - 您批量加载的文件中的样本有 29 列 ..... 还有:你转了@ 987654332@ 为您的表之前批量加载?
-
重新表述 marc_s 的评论:您的文件中缺少 1 列,并且您无法在不使用
SET IDENTITY_INSERT ON的情况下将值插入标识列。如果你同时解决了这两个问题,会发生什么? -
marc_s Thanx 这是问题所在,因为最后一个字段为空,它在 cvs 文件中没有数据,当我将其保存为 txt 时,它只是跳过该列。我在最后一条记录之后添加了额外的逗号,它提交并响应 (0) 行受影响并且我确实从 Clients2 中选择 * 它是完全空的
标签: sql database sql-server-2008 sql-server-2008-express loaddata