我的 Excel 工作表中有原始数据。我在 SQL Server 中开发了一个具有外键约束的数据库,现在我想将数据从 Excel 工作表导入到我的 SQL Server 数据库(具有多个具有外键约束的表)。
请指导我在将数据导入数据库时如何处理外键?我是 SQL Server 数据库新手,任何教程链接都会有帮助。
提前致谢。
您不能依赖使用 Excel 导出的数据。我建议您遵循以下方法。
将数据转储到中间表中,没有任何约束。
在移动到主表之前验证数据。为此,您可以使用
where exists
子句来检查数据是否存在于外键表中。验证失败的记录,您可以将其报告给用户。
如果您可以使用 SQL Server Integration Services,查找转换将为您完成这项工作。这是一个例子: http://www.learnmsbitutorials.net/ssis-lookup-transformation-example.php
我们还提供 Excel 插件,用于从 Excel 导入和更新 SQL Server 中的数据。 它可以在 Excel 中为外键关系创建下拉列表。然后,用户将在 Excel 中选择一个文本项(从外键表中获取),相应的键值将被插入到 SQL Server 中的表中。 更多详细信息请访问:https://sqlspreads.com
使用 SSIS 导入向导非常简单且可靠,我用复杂的模式做了很多次。
确保您的 PK 列定义为 IDENTITY,以便每次导入记录时它可以递增 1,然后确保其他表中的所有 FK 列也是 IDENTITY 并与 PK 存在关系。
构建导入 Excel 工作簿,每个表一张工作表,并使用数据库表中的列名称;确保单元格的格式与数据库列的数据类型匹配
运行导入向导,选择 Excel 作为源,选择 SQL Server 的 OLE DB 提供程序作为目标,将每个工作表映射到其数据库表,然后运行导入。
如果架构/设置制作精良,它每次都会完美运行。