2014-06-26 50 views
1

我試圖使用bcp實用工具將表導出到磁盤,刪除數據,將該表上的標識列從int更改爲bigint,然後重新導入該數據。SQL Server批量插入int到bigint

當我「bcp in」數據時,我在bigint列中獲得了大量數字,而不是原始標識。我正在使用-E開關來保持身份,我已經更改了bcp格式文件,以便它是固定長度= 4列。

可以這樣做嗎?

更新:我正在使用-N開關來使用本機數據庫類型。我現在嘗試使用-w開關,現在我得到關於強制轉換和文本列數據類型的不同錯誤。

+0

可你只是將數據複製到一個臨時表,而不是出口呢?或直接改變列? – usr

+0

不,這個表中有10億行 –

+0

將數據留在SQL Server中可能比導出和導入數據更快。 – usr

回答

0

所以答案是肯定的,可以做到。但不像使用本地數據類型開關-N那樣。

我用-w開關和-t用雙管道分隔符「||」。我需要這個分隔符,因爲一些文本值有選項卡和/或管道。

我試過的1000,2500,25000,100000表現最好的批量是從25000