我在模式A中有users表,在模式B中有一个表。 我的应用程序已连接到架构A,因此新数据将添加到架构A的表中。 我需要做的是编写一个带有作业的过程,以便每晚将新行带入架构B中的表。 我很困惑使用什么,尽管我已经看到了多种方法,例如光标,合并或更新和插入。
那么对我来说,最好的解决方案是什么?
我这样想:
update db.B.users
set{
db.B.users.Id = db.A.Id,
db.B.users.name= db.A.name,
....}
from A
JOIN B ,A on db.B.users.Id = db.A.Id
然后将不同的记录插入B表中
答案 0 :(得分:0)
符合您要求的MERGE
语句看起来像这样。
我假设users.Id
在表A中是唯一的。
MERGE INTO schemaB.users b
USING schemaA.users a
ON ( a.Id = b.ID )
WHEN MATCHED THEN UPDATE
SET b.name = a.name, --Don't update ID( you can't )
b.othercolumn = a.column
--all other columns
WHEN NOT MATCHED THEN INSERT (
id,
name,
othercolumns ) VALUES (
a.id,
a.name,
a.othercolumns );