我想将数据从一个数据库批量复制到另一个数据库。它必须足够动态,以便当源数据库的用户创建新字段时,目标端(我的端!)的更改最少。
我使用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语句将是答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句