2013-10-01 28 views
-2

我是一名新實習生,並被分配了將我們許多經銷商設置爲活動(1)或非活動(0)的任務。如何使用一個SQL查詢更新2000行

我有一個經銷商的列表在Excel文件中更新和更新SQL服務器表。

我可以使用下面的SQL:

UPDATE Dealer 
SET Active = 0 
WHERE dealer_id = 123456; 

UPDATE Dealer 
SET Active = 1 
WHERE dealer_id = 123456; 

的問題是我有2000+的經銷商,每一個獨特的dealer_id,它似乎令人難以置信的浪費時間鍵入的是線2000+次。

有沒有更快的方法來做到這一點?

+3

該如何與練成? – 2013-10-01 14:16:07

+0

你用什麼程序來運行這些查詢?此外,你是否應該更新所有經銷商,或只是最近更改過的那些經銷商,如果是那些最近更改了2k +的經銷商? – Amber

+0

您可以使用表中的其他列對經銷商進行排序,並根據排序將0/1進行排序? – TimSPQR

回答

1

這取決於,如果你有所有的ID的列表,你可以寫

UPDATE Dealer 
SET Active = 0 
WHERE dealer_id in(123456,123457,123458) 

更快的將有一個表或列表的地方所有你想要調整

UPDATE DEALER 
SET ACTIVE = 0 
WHERE DEALER_ID IN (Select dealer_id from dealer_active) 
的ID
0

您需要做的是將Excel文件加載到SQL Server數據庫中。有工具可以做到這一點。即您可以設置ODBC驅動程序,連接到電子表格並上傳。否則,您可以使用Access導入Excel電子表格,然後將其上載到SQL Server。

之後,你可以做到以下幾點:

UPDATE Table2 
SET Table1.Active = Table2.Active 
FROM Table1, Table2 
WHERE Table1.Dealer_ID = Table2.Dealer_ID 

更新從裝載列「Excel數據」 ......