关于数据库(sqlserver)插入问题
- SQL code
CREATE TABLE M_NAMES ( ID INT IDENTITY(1, 1), --ID CLASS_CD TINYINT NOT NULL, -- NAME_CD SMALLINT NOT NULL, -- FULL_NAME NVARCHAR(60), -- SHORT_NM1 NVARCHAR(10), --1 SHORT_NM2 NVARCHAR(20), --2 REMARK1 NVARCHAR(40), --1 REMARK2 NVARCHAR(40), --2 DIV1 NVARCHAR(2), --1 DIV2 NVARCHAR(3), --2 DIV3 NVARCHAR(4), --3 INS_DATE DATETIME, -- UPD_DATE DATETIME, -- VERSION INT NOT NULL, -- CONSTRAINT PK_NAMES PRIMARY KEY (ID), CONSTRAINT U_NAMES UNIQUE (CLASS_CD,NAME_CD))CREATE INDEX INDEX_NAME ON M_NAMES(CLASS_CD,NAME_CD)
我是重tet文件里读出一条记录插入数据库的。怎么样修改者张表才能正确把数据正确的插入数据库啊。
[解决办法]
你这张表的ID,已经是自增序列了,正常操作是不会出现主键重复的。
说明你所导入的text文件中的记录,其ID,跟数据库中已有表数据的ID存在重复。
这种情况下,如果你不能把数据库中现有记录清空的话(也就是说你并不是在做一个恢复操作),那么你就只能是修改text文件中记录的ID序列号,常用的做法是固定增加一个很大的数。
比如固定增加 80000000:
text文件中ID是 123,那么你写数据库时,ID就改为:80000123
[解决办法]
ID INT IDENTITY(1, 1), --ID
修改id属性 改成否 如图
[解决办法]
1.insert into M_NAMES(CLASS_CD, NAME_CD, ......) vlaues(?,?,?,?,?,?,?,?,?)";
按照M_NAMES 表结构应该是13列。不算 ID
2.DATETIME类型,null的时候,用setString,有点问题。最好用setNull
[解决办法]