gpt4 book ai didi

mysql - 如何将 EXEC 语句的输出放入变量中(在 mysql 链接服务器上调用过程)?

转载 作者:行者123 更新时间:2023-11-29 00:52:56 24 4
gpt4 key购买 nike

我能够从 Sql2k5 调用链接服务器 (MySQL) 上的过程。该过程返回单行单列:

declare @Statement nvarchar(200)
set @Statement = 'call database.procedure(''some string'');'
exec (@Statement) at [linkedserver]

...结果:

some string

我现在需要的是将一个变量设置为过程返回的值

我找到了一个有点相关的帖子 here .

但是当我尝试插入执行结果时:

insert into sometable exec (@Statement) at [linkedserver] 

我收到这个错误:

OLE DB provider "MSDASQL" for linked server "linkedserver" returned message "[MySQL][ODBC 5.1 Driver]Optional feature not supported".
Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "MSDASQL" for linked server "linkedserver" was unable to begin a distributed transaction.

有没有办法解决这个问题,或者有更好的方法来获得这些结果?

谢谢,

最佳答案

链接服务器是一个真正的痛苦,尤其是当元数据被搞砸时。不管您是否使用 BEGIN/COMMIT TRAN,“插入”都是分布式事务(插入会导致日志使用)。您尝试过 OPENQUERY 了吗?或者试试这些想法:

http://www.sqlservercentral.com/Forums/Topic714869-338-1.aspx#bm716699

请注意以下链接中的提供商和链接服务器选项: http://www.infi.nl/blog/view/id/4/How_To_MySQL_as_a_linked_server_in_MS_SQL_Server

关于mysql - 如何将 EXEC 语句的输出放入变量中(在 mysql 链接服务器上调用过程)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com