INSERT INTO选择错误的列

时间:2014-07-15 18:10:16

标签: sql

我有两个表,一个临时表,我从Excel电子表格中转储数据,另一个是我想用于我们网站的SQL表。我想将临时表中PensgcException列的值转移到主SQL表中的OriginalPensgcException。但是,每次运行我的语句时,我都会收到以下错误,这似乎表明我编写查询的方式是尝试将Pensgc列从一个表移动到另一个表。

  

无法将值NULL插入“Pensgc”列,表'AgentResourcesU01.dbo.PENSGC';       列不允许空值。 INSERT失败。

PENSGCs $ (临时表)

PENSGC                      nvarchar(255) null
PensgcException             nvarchar(255) null

PENSGC

Pensgc                  PK char(3) not null
OriginalPensgcException FK int     null

T-SQL

INSERT INTO PENSGC (OriginalPensgcException)
SELECT PensgcException
FROM PENSGCs$ t
INNER JOIN PENSGC p ON t.PENSGC = p.Pensgc
WHERE p.Pensgc = t.PENSGC

1 个答案:

答案 0 :(得分:3)

我想你想要update,而不是insertinsert将新行放入表中。 update更改一行中的值。这可能会做你想要的:

UPDATE p
    set OriginalPensgcException = t.PensgcException
FROM PENSGCs$ t INNER JOIN
     PENSGC p
     ON t.PENSGC = p.Pensgc;