我有两个表,一个临时表,我从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
答案 0 :(得分:3)
我想你想要update
,而不是insert
。 insert
将新行放入表中。 update
更改一行中的值。这可能会做你想要的:
UPDATE p
set OriginalPensgcException = t.PensgcException
FROM PENSGCs$ t INNER JOIN
PENSGC p
ON t.PENSGC = p.Pensgc;