使用EXEC()AT [链接服务器]从本地服务器插入数据

问题描述 投票:1回答:1

让我先介绍一下我的设置,然后再让您知道我正在处理的问题:

我有两个数据库服务器:SQL 2008和MySql。我在SQL中有一个过程,该过程首先在MySql中删除一个表,然后使用SQL本身中的一些数据填充该表。对于这两个动作,即时通讯都使用OPENQUERY。但是,正如您所知,它不支持大数据。如果要在MySql中截断该表,这将变得非常缓慢(删除14万行花了大约14分钟的时间……很疯狂!)。

所以我发现我可以使用此语法进行截断:

EXEC('TRUNCATE TABLE table_name')AT LINKEDSERVER

但是我还不能通过此找到将SQL表的结果插入MySql表的语法。当我插入静态数据时,它可以正常工作,例如以下示例:

EXEC('INSERT INTO table_name(row1,row2)VALUES(value1,value2)')在链接服务器

但是我想从SQL插入结果,就像这样:

EXEC('INSERT INTO table_name(row1,row2)SELECT r1,r2 FROM SQL_DB.sql_table_name')AT LINKEDSERVER] >>

我打赌我不能这样做,因为按照这种语法,我在MySql服务器中执行exec的地方,而SQL表在那里不存在。因此,如何在“ EXEC()AT”语法中引用我的SQL表?

谢谢。

让我先介绍一下我的设置,然后再告诉您我要处理的问题:我有两个数据库服务器:SQL 2008和MySql。我在SQL中有一个程序,首先删除表...

mysql sql-server-2008 linked-server
1个回答
0
投票

您必须使用“ OPENQUERY”来执行此操作-参见

© www.soinside.com 2019 - 2024. All rights reserved.