我有一个数据库,其中的图像表包含超过 37,000 条记录。每个记录包含二进制数据形式的图像。我需要将所有这 37,000 条记录放入另一个数据库中,该数据库包含具有大约 12,500 条记录的相同表和架构。我需要使用 IF NOT EXISTS 方法将这些图像插入数据库,以确保完成后不存在重复项。
我尝试将数据导出到 Excel 并将其格式化为脚本。 (我之前对其他表也这样做过。)问题是,Excel 不支持二进制数据。
我还尝试了 SSMS 中的“生成脚本”向导,但它不起作用,因为 .sql 文件远超过 18GB,而我的 PC 无法处理它。
还有其他 SQL 工具可以做到这一点吗?我用谷歌搜索了几个小时但没有结果。感谢您的帮助!
最佳答案
我用过SQL Workbench/J为此。
您可以使用WbExport和 WbImport通过文本文件(二进制数据将被写入单独的文件,文本文件包含文件名)。
或者您可以使用WbCopy直接复制数据,无需中间文件。
要实现“如果不存在”方法,您可以使用更新/插入模式,尽管这会更改现有行。
我不认为存在“仅在不存在的情况下插入模式”,但是您应该能够通过定义唯一索引并忽略错误来实现此目的(虽然这不会很快,但应该对于少量的行来说就可以了)。
如果“存在”检查更复杂,您可以将数据复制到目标数据库中的临时表中,然后使用 SQL 将其合并到真实表中。
关于sql-server - 从一个 SQL 数据库导出大量二进制数据并将其导入到具有相同架构的另一数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14885203/