您知道您可以使用 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
一旦你开始使用这些,你的问题可能会有所不同。
这可能是古怪的想法,但我之前发现它很方便......