SQL Server - 从表中插入另一个表中的值

时间:2016-11-11 16:54:10

标签: sql-server insert

首先,我已阅读此页面上有关类似问题的其他帖子,但我无法弄清楚我哪里出错了。我想用[table2]中另一列的值填充[table1]列。

当我跑步时,

insert into Staged.dbo.factSales(Date)
    select SaleDate 
    from Staged.dbo.SaleDates

我收到以下错误

  

Msg 515,Level 16,State 2,Line 1
  无法将值NULL插入列'SaleValue',表'Staged.dbo.factSales';列不允许空值。 INSERT失败。

SaleValueStaged.dbo.factSales中的列,设计明智,位于'Date'之后 - SaleID,OrderID,ProductID,BranchID,EmployeeID,Date,SaleValue。

有谁知道我哪里出错了?提前谢谢!

的Marcin

2 个答案:

答案 0 :(得分:1)

SalesValue不允许空值,因此提供零。

Insert into Staged.dbo.factSales (Date,SaleValue)
Select SaleDate,0 from Staged.dbo.SaleDates

答案 1 :(得分:0)

使用

修复
update Staged.dbo.factSales set Staged.dbo.factSales.Date = Staged.dbo.SaleDates.SaleDate from Staged.dbo.factSales inner join Staged.dbo.SaleDates on Staged.dbo.factSales.SaleID = Staged.dbo.SaleDates.SaleID