星期五, 6月 07, 2019

[SQL] 大量匯入與 Identity

利用 Bulk Insert 時遇上 Identity 欄位問題,發現 MSDN 文章 - 大量匯入資料時保留識別值,明確指出 Bulk Insert 必須指定 KEEPIDENTITY 才能保留,否則會在自動產生喔

MSDN 說明
您可以將包含識別值的資料檔案大量匯入 Microsoft SQL Server 的執行個體中。 根據預設,會忽略所匯入資料檔案中的識別欄位值, SQL Server 會自動指定唯一值。 唯一值的依據是資料表建立期間所指定的初始值及累加值。

[SQL] 大量匯入與 Identity


測試 KeepIdentity 效果

建立測試資料 Identity 為 1、3、5 三筆奇數資料,並分別利用 Bulk Insert 匯入資料
  • 左圖:指定 KeepIdentity,identity 仍為 1、3、5
  • 右圖:預設為沒有指定 KeepIdentity,identity 會自動產生
[SQL] 大量匯入與 Identity-2

沒有留言:

張貼留言