2014-11-04 18 views
0

我有以下三個表:SQL腳本 - 基於Excel的數據更新表

產品:IDProduct,ProductPartNumber

手冊:IDManual

ProductManual:IDProduct,IDManual

我有根據包含以下兩列的數據列表(包含2-3000個條目)更新產品和手動之間的鏈接:ProductPartNumber,NewProductPartNumber。

我想要完成的是通過ProductManual表並且IDProduct對應於數據列表中的ProductPartNumber,將其替換爲對應於NewProductPartNumber的IDProduct。

我該怎麼做?我認爲我會在事務中執行該操作,以防發生意外事件,因爲此腳本將更改生產數據庫。

+0

我的事情,我可以幫助你,但問題根本無法理解),如果你提供了更多的信息,那會更好 – tungula 2014-11-04 09:21:57

回答

2

WAY1:與SQL批處理,您可以創建一個臨時表的數據列表,並運行下面的SQL:

BEGIN TRAN

CREATE TABLE #TempProductPartNumber(ProductPartNumber INT,NewProductPartNumber INT) - 插入的數據列表到該臨時表

更新產品 SET Product.ProductPartNumber =#TempProductPartNumber.NewProductPartNumber 從產品 INNER JOIN ProductManual ON Product.IDProduc T = ProductManual.IDProduct INNER JOIN #TempProductPartNumber ON#TempProductPartNumber.ProductPartNumber = Product.ProductPartNumber

COMMIT TRAN

Way2:獲取產品和ProductManual的所有數據,更新的相同方式使用LINQ的數據和將數據更新回數據庫。

0

你也可以使用一個公式在Excel中創建的每一行的更新腳本:

="UPDATE Product p SET p.ProductPartNumber = " & A2 & " WHERE p.ProductPartNumber = " & A1 

然後

="UPDATE ProductManual m SET m.IDProduct= " & A2 & " WHERE m.IDProduct= " & A1 

,然後運行所有行