两表两列提取

时间:2018-07-12 06:06:16

标签: sql sql-server tsql sql-insert

出什么问题了?

INSERT INTO [database].table1 (Number)
    SELECT sd.a1 - sd.b1 AS kalan  
    FROM NUMBERS sd

错误:

  

无法将值NULL插入表'database.dbo.table1'的列'code'中;列不允许为空。 INSERT失败。

3 个答案:

答案 0 :(得分:1)

您需要指定所有不允许使用null值的列:

INSERT INTO [database].table1 (Col1, Col2, Col3)  --- Columns which are not allowd null values
      SELECT Col1, Col2, Col3
      FROM Table t;  

答案 1 :(得分:0)

检查该列是否为IDENTITY列,或者是否已启用ISNULL约束。

 INSERT INTO [database].table1 (code)
 SELECT  sd.a1 - sd.b1 AS kalan  FROM  NUMBERS sd

答案 2 :(得分:0)

使用ISNULLnull转换为0

INSERT INTO [database].table1 (Number)
SELECT ISNULL((sd.a1 - sd.b1),0) AS kalan  
FROM NUMBERS sd