如何在链接服务器上将数据从 mssql 更新到 mysql

Posted

技术标签:

【中文标题】如何在链接服务器上将数据从 mssql 更新到 mysql【英文标题】:How to update data from mssql to mysql on linked server 【发布时间】:2019-02-27 17:16:25 【问题描述】:

返回链接服务器“MYLINKEDSERVER”的 OLE DB 提供程序“MSDASQL” 消息“无法找到要更新的行。某些值可能已 自上次阅读以来发生了变化。”。

Msg 7343, Level 16, State 4, Line 1
The OLE DB provider "MSDASQL" for linked server "MYLINKEDSERVER" could not UPDATE table "[MSDASQL]". 

行集正在使用乐观并发,并且在包含行最后一次获取或重新同步后,列的值已更改。

DECLARE @Counter nvarchar(1024),
        @TSQL varchar(8000)

SET @Counter = 0

WHILE (@Counter <=(select Top 1 ID from mydb.dbo.tbl1 order by ID desc))

BEGIN

    set nocount on

    IF EXISTS(select Top 1 ID from mydb.dbo.tbl1 where ID = @Counter)

    BEGIN

        SELECT  @TSQL   = 'UPDATE OPENQUERY(MYLINKEDSERVER,''select * from mydb2.tbl2 where tbl1_id is not null and tbl1_id= ' + @Counter + ''')' + 'set employees = ' + CAST((select t.employees from mydb.dbo.tbl1 as t where t.ID = @Counter) as nvarchar)

        EXEC (@TSQL)
        SELECT @Counter=@Counter+1
    END

    ELSE BEGIN

        SELECT @Counter=@Counter+1

    END

END

【问题讨论】:

在 EXEC 之前添加 PRINT @TSQL 并将生成的查询粘贴到此处。 第一行:UPDATE OPENQUERY(MYLINKEDSERVER,'select * from mydb2.tbl2 where tbl1_id is not null and tbl1_id= 4') set employees = 168 你看到了吗?查看最后一个帖子:social.msdn.microsoft.com/Forums/sqlserver/en-US/… 是的。但没有解决。因为 odbc 驱动程序。 【参考方案1】:

ODBC 驱动程序高级选项。 标记不缓存结果 fof 只... LFag 返回匹配的行...

【讨论】:

以上是关于如何在链接服务器上将数据从 mssql 更新到 mysql的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VS2017 上将 ASP.MVC 脚手架从 Bootstrap 3 更新到 Bootstrap 4?

如何在 Ubuntu 16.04 上将 Ms SQL 服务器与 R 连接?

POST JSON 数据从 iOS 到 mssql 服务器 [关闭]

如何在 Debian VPS 上将 PHPmyadmin 更新到 4.0.4.1 [关闭]

使用 putty 在 Lamp 服务器上将 mysql 版本更新为 5.2

在 Windows 上将 PHP 连接到 SQL Server