我有两个SQL Server数据库,我需要编写一个脚本来将数据从数据库A迁移到数据库B.两个数据库都有相同的模式。
我必须遍历表格,对于每个表格,我必须遵循这些规则:
Name
上进行比较),那么我将其直接插入。Age
和Address
但不要触及其他列)任何人都可以帮我处理这个剧本吗?任何例子都足够了。非常感谢
修改
我只需要一个表的示例。不需要循环,我可以单独处理每个表(因为每个表都有自己的比较列和更新列)
答案 0 :(得分:7)
MERGE语句看起来可以帮到你。一个例子:
MERGE StudentTotalMarks AS stm
USING (SELECT StudentID,StudentName FROM StudentDetails) AS sd
ON stm.StudentID = sd.StudentID
WHEN MATCHED AND stm.StudentMarks > 250 THEN DELETE
WHEN MATCHED THEN UPDATE SET stm.StudentMarks = stm.StudentMarks + 25
WHEN NOT MATCHED THEN
INSERT(StudentID,StudentMarks)
VALUES(sd.StudentID,25);
从SQL Server 2008开始提供合并声明,因此您很幸运
答案 1 :(得分:0)
不是创建脚本而是为什么不将源表以不同的名称复制到目标服务器中(需要进行更新)。
然后只做一个名称不存在的简单插入。
以下是仅适用于步骤1的SQL。
INSERT INTO [TableA]
SELECT Name,
XX,
XXXX
FROM TableB
WHERE NOT NAME IN(SELECT NAME
FROM TableA)