Sql-Server

將每個條目從 TableA 複製到 TableB,其中 ID 位於包含 ID 列表的文本文件中

  • December 10, 2014

我有一個包含 35k 行的文本文件(或 xls),每行包含一個ID. 我需要將每個條目複製TableATableB所述ID列表中的位置。

如果我創建一個帶有 ID 的新表,以便TableC在查詢中將此表用作WHERE ID IN TableC?如果是這樣,用 txt 文件中的 ID 填充新表的最簡單方法是什麼?

或者有沒有辦法在查詢中使用文本文件或列表本身?

我認為像這樣的查詢應該是合適的,但我不知道如何使用文本文件。

SELECT * INTO TableB
FROM TableA
WHERE ID IN text_file

使用 Microsoft SQL Server Enterprise Edition v9.00.3042.00,即 SQL Server 2005 Service Pack 2

我知道的最簡單的方法是在 tempdb 中創建一個帶有單列(例如 id)的表,然後在 SSMS 中展開 tempdb 節點並找到該表。右鍵點擊並選擇“編輯前 200 行”。

將出現一個網格。選擇左側行標題的整個第一行,然後粘貼文件的全部內容。

BCP 是將文件內容載入到目標表的另一種方法。在這種情況下,我發現它比在 SSMS 中複製和粘貼文件內容更容易。

您還可以使用 OPENROWSET 或其他技術在查詢中直接引用文件,但這需要將文件複製到伺服器或弄亂權限:一次性任務太麻煩了。

引用自:https://dba.stackexchange.com/questions/84787