mysql - 从相同的 MySQL 链接服务器表 Where 子句更新本地 MSSQL 表

标签 mysql sql-server linked-server openquery

我有两个表都名为雇主。一个表驻留在 MSSQL 上,另一个表驻留在 MySQL 上。 MySQL 数据库已链接。

我正在尝试使用数据不同的 MySQL 数据库中的数据更新 MSSQL 数据库表中的所有行。

理想情况下,因为行太多,我宁愿只更新具有不同数据的行。

每个数据库表都有 2 列 idemployees 和Employeescol1。

下面是一个脚本的工作示例,它将更新链接 MySQL 数据库中的所有行:

UPDATE MSSQLDB.dbo.employer
SET employeescol1 = emp2.employeescol1  
FROM OPENQUERY(LinkedServer, 'SELECT * FROM employees') as emp2  
WHERE
   MSSQLDB.dbo.employer.idemployees = emp2.idemployee

如何添加 WHERE 子句来表示类似 WHEREEmployeescol >=(插入变量)???

最佳答案

像这样的东西应该可以工作。如果...有点太多,您还可以使用同义词:

;with cte
as
(SELECT
    *
from
   OPENQUERY(LinkedServer, 'SELECT * FROM employees')
)
UPDATE MSSQLDB.dbo.employer
SET 
    employer.employeescol1 = cte.employeescol1  
FROM
    MSSQLDB.dbo.employer 
inner join
    cte
on
    cte.idemployees = employer.idemployee

关于mysql - 从相同的 MySQL 链接服务器表 Where 子句更新本地 MSSQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479980/

相关文章:

mysql - 如何在mysql中将1列分配为4列

sql - 代码重构 SQL Server 数据库对象名称更改

sql - MS SQL - 截断错误

sql-server - Azure SQL 表 -> SQL Server View -> 链接 Access 表 : can't update

sql-server - 如何在 SQL Server 中列出链接服务器数据库的所有表和列名称?

mysql - 如何在 UPDATE 查询中使用同一个表中的数据?

mysql - Docker和MySQL无法连接

sql - 如何从 sql 语句或存储过程连接到外部数据库?

mysql - 重启后恢复 MySQL root 用户的全部权限

c# - 从 C# 发送 SQL 查询并将其附加到过程中时排序不起作用