sql-server - 将 CSV 导入 SQL Server 数据库,保留 ID 列值
问题描述
我正在努力将 SQLite 数据库迁移到 SQL Server,我需要使用 IntelliJ IDEA 将 SQLite 表中的所有数据导入 MSSQL 数据库。
我已经将数据导出为 CSV 格式,但是当我导入 SQL Server 时,我需要维护现有的 ID 列(作为外键引用它)。
通常,我可以通过SET IDENTITY_INSERT xxx ON;
在我的INSERT
陈述之前执行来做到这一点。
但是,在使用 IntelliJ 导入 CSV 时,我不知道该怎么做。
我看到的唯一其他选择是将数据导出为一系列 SQL INSERT 语句,但这非常耗时,因为两个数据库之间的模式略有不同(更不用说 SQL 语法了)。
还有其他方法可以导入这些数据吗?
解决方案
我不知道如何在 IntelliJ 查询中执行 Identity Insert ON,但我知道如何解决这个问题。将数据导入到临时表目标中,然后在 SQL Server 中执行查询
- 将身份插入设置为 ON
- 将临时表中的数据插入最终目的地
- 设置身份插入关闭
这样做的真正作用是防止您不得不花费(可能)数小时来找出如何在 IntelliJ 中实现 Identity Insert ON,而您可能再也不需要这样做了。编码也很简单。
但是,如果您想了解 IntelliJ 中是否有办法做到这一点,那就去吧。那将是一种更优化的方法。
推荐阅读
- python - PyTorch:如何将包含整数和张量元组的列表中的元素相乘
- pyqt5 - pyqt vtk:如何去除边距?
- c++ - SIMD 聚集导致的分段错误?
- ruby-on-rails-5 - capybara 和 webdrivers gem 的只读文件系统错误
- ios - 在科尔多瓦 webview 上显示 UIButton
- asp.net - 如何在子文件夹中运行 asp.net 网站
- javascript - 在 `for`–`in` 循环中从对象访问属性会导致 `undefined`
- python - Pandas Dataframe ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- git - 删除多个重复的 git 提交
- json - 如何快速编辑json文件