我正在尝试从暂存环境更新生产环境中的表。我写了一个更新声明(下面的简化版本),它将使用来自另一个数据库的数据,并且我得到了这种类型的命令不支持的交叉数据库访问"错误。我可以成功插入另一个数据库中的数据,但不能更新。也许这是不允许的?在下面的示例中,我登录到DB1。
首次尝试:
UPDATE DB1..EMPLOYEE e1
SET e1.name = e2.name,
e1.phone = e2.phone
FROM DB2..EMPLOYEE e2
WHERE e1.id = e2.id;
第二次尝试:
UPDATE DB1..EMPLOYEE e1
SET e1.name = e2.name,
e1.phone = e2.phone
FROM (select name, phone, id from DB2..EMPLOYEE) e2
WHERE e1.id = e2.id;
答案 0 :(得分:0)
您是对的,您只能更改当前连接的数据库中的内容。
支持从不同数据库读取数据库语句以便更改当前数据库中的数据,因此这些语句应该在您连接到DB1时起作用。
编辑:上面的更新语句更新DB1中的表,因此您需要连接到DB1。