从tableA插入数据到tableB
问题描述:
所以我想根据他们的pvkey从tableA插入tableB到tableB的数据。每行都有他的pvkey,同一个pvkey下的一行可以有多个记录,每个记录都有他唯一的cnkey。 Cnkey对于表中的任何数据都是唯一的。当我从tableA插入数据时,没有列Cnkey,而在tableB中有Cnkey。从tableA插入数据到tableB
INSERT INTO CONTHIST (CONTTYPE, ASSIGNEDTO, CONTDATE, SOURCE, CNKEY)
SELECT ContactType, ASSIGNEDTO, DATE, SourceCode, ?!?!
FROM MopUpEOC
WHERE Pvkey in (1,5,7,9,11,20)
你能帮助我,谢谢:d
答
有几件事情,可以帮助你:
- 检查
CnKey
是你的表的串行主键。如果它是串行主键,则没有问题。 - 检查
CnKey
是否为NOT NULL
,如果不是,您可以稍后更改它的值,或者您可以设置一个默认值。
例如,列CnKey
是NOT NULL
,那么你可以使用下面的查询来允许NULL
:
ALTER TABLE TableB ALTER COLUMN CnKey INT NULL
更改INT
到真正的类型的列。
或者你设置的默认值:
ALTER TABLE TableB ADD CONSTRAINT ConstraintName DEFAULT 'DefaultName' FOR CnKey;
+0
Cnkey数据和系统类型为float且主键为true。 –
所以你要插入Cnkey列是什么? – jarlh
不确定是什么问题。如果该列不存在,那么就不要将它包含在插入语句中 - 从'INSERT INTO'行取出'CNKEY'(假设它有一个默认值) – Takarii
它说:不能将值NULL插入到'CNKEY'列中,表'Progress.dbo.CONTHIST';列不允许有空值。 INSERT失败。 该声明已被终止。 当我不包含列Cnkey时会发生这种情况。 我试图插入0,但它必须是某种记录,因为每次插入新记录时,他都需要具有对每个记录都唯一的Cnkey。 –