数据导入导出问题C#/ SQL Server

时间:2011-06-26 12:30:40

标签: c# sql-server linq-to-sql import linq-to-xml

我需要为三个数据库表实现一个导入导出模块,这些表与内部主键/外键约束相关。

我可以轻松地使用c#/ linq到xml / linq到sql。问题是,当我导入导出的数据时,在数据库中,主键表的id正在重新生成而不从xml文件中获取/分配id(它自然地用于自动增量)。为此,无法导入其他表数据/显示主键约束违反的错误。

我的目标是导入所有数据并保持主/外键不变。

现在,有人可以建议我能解决这个问题吗?提前谢谢。

4 个答案:

答案 0 :(得分:2)

您可以使用identity insert为标识列指定值。

如果为标识列指定显式值,则您自己负责解决冲突。如果数据库已经有id = 1行,则必须决定如果导入还包含id = 1该怎么做:SQL Server只会抛出错误。

答案 1 :(得分:1)

我们总是将BCP操作用于此类任务。

答案 2 :(得分:0)

我建议不要让你的自动增量作为主键,但要有一个单独的主键,可以用别的方式定义......那么你就不会有自动增量的问题

答案 3 :(得分:0)

如果您不需要XML和SQL中的ID匹配(仅关系),您可以使用SCOPE_IDENTITY()并维护从XML ID到SQL ID的映射,以在其他表中插入正确的外键列。