2012-03-21 277 views
1

我有一个表SINVOICE和另一个表SINVOICE_LINESQL Server错误515

我需要将SINVOICE的所有列放入SINVOICE _LINE。

我已经创建了相应的列并试图复制这些值。 SINVOICE的主密钥为SINVOICE_CODE,而SINVOICE_LINE的主密钥为复合密钥(SINVOICE_CODE, SINVOICE_LINE_NUMBER)

我写了下面的查询:

INSERT INTO SINVOICE_LINE (sinvoice.ITINERARY_CODE) 
    SELECT sinvoice_line.ITINERARY_CODE 
    FROM SINVOICE 
    INNER JOIN sinvoice_line ON sinvoice.sinvoice_code = sinvoice_line.sinvoice_code; 

我得到这个错误:

Cannot insert the value NULL into column SINVOICE_CODE, table SINVOICE_LINE; column does not allow nulls. INSERT fails.

我不明白为什么我得到这个错误,因为我并不想在插入任何值SINVOICE_CODE栏。

谢谢!

+0

“嗨,我不插入任何值SINVOICE_CODE和它说我不能插入空值”你真的不知道这一个在你自己? – 2012-03-21 10:30:42

+0

请尝试在您的问题中格式化TSQL。它现在真的很难读。 – 2012-03-21 10:33:06

+0

我不喜欢任何值,因为我已经有该列中的值... – user1264578 2012-03-21 10:35:27

回答

1

看起来你需要更新而不是插入这里。

试一下:

UPDATE SINVOICE_LINE 
SET ITINERARY_CODE = sinvoice.ITINERARY_CODE 
from SINVOICE 
WHERE sinvoice.sinvoice_code = sinvoice_line.sinvoice_code; 
+0

是的,它工作!非常感谢!!我会记住这一点! – user1264578 2012-03-21 10:49:47