我正在處理將數據從Access導入到SQL Server 2008的應用程序。目前,我正在使用存儲過程通過記錄單獨導入數據。我無法使用批量插入或類似的東西,因爲數據被插入到兩個相關的表中......我有一堆進入帳戶表(名,姓等)的字段和三個字段每個保險表中都有一個記錄,通過在存儲過程中使用SCOPE_IDENTITY選擇的自動遞增AccountID鏈接回賬戶表。將暫存表中的數據插入多個相關表中?
性能不是很好,由於往返於從應用程序的數據庫的數量。出於這個以及其他一些原因,我打算使用臨時表並從那裏導入數據。閱讀我的選項以解決這個問題,在臨時表中的數據上執行相同的插入存儲過程的遊標是合理的。但是,似乎遊標是邪惡的化身,應該避免。
有什麼辦法可以將數據插入一個表格,檢索自動生成的ID,然後在相同的記錄到另一個表使用相應的ID插入數據,在基於集合的操作?或者是光標我唯一的選擇在這裏?
在SQL Server 2008中,您可以使用'merge ... output'。看看這個問題。 http://stackoverflow.com/questions/5365629/using-merge-output-to-get-mapping-between-source-id-and-target-id –
BUlk插入到臨時表。然後像其他人所描述的那樣使用MERGE和OUTPUT。 – HLGEM