您知道您可以使用 SQL 生成 SQL 脚本吗?(这仅适用于faculty 在staging 和production 中具有相同faculty_id 的情况)
这将生成插入新学院的脚本:
SELECT 'INSERT INTO production.Faculty (faculty_id, name, comment)
SELECT TOP 1 '+LTRIM(faculty_id)+','''+name+''','''+comment+'''
FROM production.Faculty
WHERE NOT EXISTS (SELECT 1 FROM production.Faculty WHERE faculty_id = '+LTRIM(faculty_id)+');' AS runMeOnProduction
FROM staging.Faculty
这将生成脚本来更新现有学院:
SELECT 'UPDATE production.Faculty SET name = '''+name+''', comment = '''+comment+'''
WHERE faculty_id = '+LTRIM(faculty_id)+';' AS runMeOnProduction
FROM staging.Faculty
如果您的姓名或评论字段中有引号,您可能希望将上述 SQL 语句中的姓名和评论替换为:
REPLACE(name,'''','''''')
REPLACE(comment,'''','''''')
这不是最好的方法,特别是如果您在两种环境中的两个表上都获得插入和更新。但是,如果教职员工的数据仅在分期方面有所增长,那么这项工作就可以了。
此外,一些查询软件在您运行这些 SQL 语句时会显示一个 blob 或一些十六进制,因为它认为字符串太长无法显示,如果您复制粘贴它,它可能仍然正确。否则尝试另一个 SQL 查询工具。我将 DBVisualiser 用于这种事情并且它有效。我不是为任何特定的数据库查询工具做广告,只是我必须经常查询 mySQL 和 MSSQL,所以我发现自己从一个应用程序跳到另一个应用程序以完成工作。
如果在两种环境中都有数据输入,您应该考虑使用适当的数据比较工具:http ://en.wikipedia.org/wiki/Comparison_of_database_tools
一旦您开始使用这些,您的问题可能会有所不同。
这可能是古怪的想法,但我之前发现它很方便......