你知道你可以生成SQL脚本使用SQL? (这只工作,如果教师在临时和生产相同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 一旦您开始使用这些,您的问题可能会有所不同。
这可能是古怪的想法,但我发现它方便以前...
请问什么版本的SQL Server。 – RBarryYoung