SQL Server 错误 515

标签 sql sql-server insert sql-server-2008-r2

我有一个表 SINVOICE 和另一个名为 SINVOICE_LINE 的表。

我需要将 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 列中插入任何值。

谢谢!!!

最佳答案

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

尝试一下:

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

关于SQL Server 错误 515,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802693/

相关文章:

sql - 如何在 SQL Server 的 where 子句中使用 sum 函数?

sql - 如何循环PL/SQL的:=a+2;

mysql - 我是否必须按顺序列出所有列并在 INSERT 语句中为每一列设置值?

c++ - 插入 std::map 时的位置

c++ - 使用插入 C++ 后维护无序集中的顺序

php - sql查询order by似乎不起作用

sql - 检查表中存在的列

sql - 选择相关表中没有值记录的所有行

sql - 计数表中值连续出现的次数

mysql - 同一个表 SQL Server 上的多个联接