2017-03-09 55 views
-3

我插入一行數據從一個表的列到另一個表的列。這是我的工作完成:插入使用插入和內部聯接

Insert into [Inventory](Cost) 
Select cast(a.[CCost] as numeric(18,6)) from [InventoryTemp] as a 
Inner join [Inventory] as b on a.[ID] = b.[ID] 

我有10000行的數據在我的[庫存表(ID列被填滿),但在執行上面的查詢時,成本數據從10001開始,直到20000

Inventory      InventoryTemp 
ID  Cost     ID   Cost 
1        1   3.12 
3        3   9.90 
18        18   8.80 

我想

Inventory 
ID   Cost 
1   3.12 
3   9.90 
18   8.80 
+0

'ID'' identity'? –

+0

提供表格結構和樣本數據。 –

+0

是的,但不是主鍵。 –

回答

1

如果我讀正確你的問題的結果,我想你想在你的庫存表更新費用列的值的基礎上,在T值他InventoryTemp表。

因此,您希望執行UPDATE命令而不是INSERT。

這方面的一個例子是:

UPDATE 
    Inventory 
SET 
    Inventory.Cost = InventoryTemp.Cost 
FROM 
    Inventory 
INNER JOIN 
    InventoryTemp 
ON 
    Inventory.ID = InventoryTemp.ID 

欲瞭解更多信息,請參閱這個問題:How do I UPDATE from a SELECT in SQL Server?

0

您需要使用UPDATE而不是'插入」

UPDATE i 
SET [Cost] = it.[Cost] 
FROM [Inventory] i 
INNER JOIN [InventoryTemp] it 
ON i.ID = it.ID 
0

嘗試使用更新。

UPDATE b 
SET b.Cost = a.Cost 
FROM 
[InventoryTemp] as a 
Inner join [Inventory] as b on a.[ID] = b.[ID]