C# 将数据追加到SQL-在发现唯一记录时应插入,否则条件将覆盖现有数据
表的名称不是静态的。我有一个C#数据表中的记录列表。将行导入MSSQL表的动机 当前场景:如果任何行失败,或者如果它已经具有相同的数据,例如(主键重复检测),则不会处理整行的追加 如何将包含成功行和失败行列表的数据导入表X 有条件C# 将数据追加到SQL-在发现唯一记录时应插入,否则条件将覆盖现有数据,c#,sql,sql-server,datatable,C#,Sql,Sql Server,Datatable,表的名称不是静态的。我有一个C#数据表中的记录列表。将行导入MSSQL表的动机 当前场景:如果任何行失败,或者如果它已经具有相同的数据,例如(主键重复检测),则不会处理整行的追加 如何将包含成功行和失败行列表的数据导入表X 有条件 当覆盖处于活动状态时,追加所有记录,包括重复记录 当覆盖非活动时,仅追加唯一记录并给出失败记录的列表 最好的方法是什么?您以前使用过MERGE吗?我看到了一些MERGE的示例,但似乎都建议使用预先确定的表结构,而不是动态生成。您可以使用任意SQL构建字符串,包括MER
最好的方法是什么?您以前使用过
MERGE
吗?我看到了一些MERGE的示例,但似乎都建议使用预先确定的表结构,而不是动态生成。您可以使用任意SQL构建字符串,包括MERGE。只需确保您不接受SQL注入。“当覆盖处于活动状态时…”我假设此“覆盖”是代码中的一个变量?我建议使用两种不同的sql语句,一种用于覆盖,另一种用于“升级”。然后,您可以将这两条语句放入带有IF的SP中,或将它们分开。是覆盖将是一个变量/参数,如果处于活动状态,则无论是否找到匹配的数据,都要用上载的数据替换它。如果没有DataTableCreatePrevior的模式,我如何将datatable作为参数传递给存储过程?