【发布时间】:2012-04-27 09:20:38
【问题描述】:
我已经使用带有以下提供程序字符串的 ODBC 驱动程序创建了一个链接服务器
DRIVER={MySQL ODBC 5.1 Driver};SERVER=HOST;USER=uid;PASSWORD=pw;OPTION=3
我的链接服务器名为 MYSQL。如果我以这种方式选择和更新,它可以正常工作
SELECT * FROM OPENQUERY(MYSQL,'SELECT * FROM DatabaseName.Table')
UPDATE OPENQUERY(MYSQL, 'SELECT * FROM DatabaseName.Table where test=0') SET test=1
当我尝试使用以下语法执行插入时
INSERT OPENQUERY(MYSQL,'SELECT Column1, Column2, Column3 from DatabaseName.Table WHERE 1=0') VALUES (10,20,30)
我有以下错误
The OLE DB provider "MSDASQL" for linked server "MYSQL" could not INSERT INTO table "[MSDASQL]". Commands out of sync; you can't run this command now.
【问题讨论】:
-
解决了以这种方式创建我的链接服务器:EXEC master.dbo.sp_addlinkedserver @server='MYSQL',@srvproduct='MySQL',@provider='MSDASQL',@provstr='DRIVER= {MySQL ODBC 5.1 驱动程序};SERVER=HOST;Port=3306;USER=uid;PASSWORD=pw;OPTION=3;DATABASE=mydb;
标签: mysql sql-server-2008 oledb linked-server openquery