簡體   English   中英

使用具有列映射的數據表更新/插入到SQL表

[英]Update / Insert to SQL table using datatable with column mappings

我想將數據從一個數據庫批量復制到另一個數據庫。 它必須具有足夠的動態性,以便在源數據庫的用戶創建新字段時,目標端(我的端!)的更改最少。

我已經使用sqlbulkcopy函數,使用在單獨的表中設置的列映射完成了此操作,因此,如果創建了新內容,那么我要做的就是創建新字段並設置映射(無需更改代碼或存儲過程) :

foreach (var mapping in columnMapping)
{
    var split = mapping.Split(new[] { ',' });
    sbc.ColumnMappings.Add(split.First(), split.Last());
}

try
{
    sbc.WriteToServer(sourcedatatable);
}

但是,現在要求已更改。
我需要在此表的其他列中保留更多來自其他地方的數據,這意味着我無法截斷整個表並使用sqlbulkcopy編寫所有內容。 現在,我需要能夠插入新記錄更新當前記錄的相關字段,但仍要足夠動態以至於用戶創建新字段時不需要更改代碼。

有人有什么想法嗎?

評論來自mdisibio的原始問題-看起來SQL MERGE語句將是答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM