2010-05-19 116 views
0

我是这个板子的新手。我一直在疯狂地试图找到我的问题的答案。 我创建了一些TSQL代码,用于在存储过程中的游标中执行一些动态SQL。光标从表x中提取一些数据,在表x中构建一个基于查询的数据,运行查询并返回数据。奇迹般有效。 当我添加一个'insert into table'来捕获结果时,我得到一个错误:注意:只有SQL 2000的错误在SQL 2008上运行良好。 无法执行该操作,因为OLE DB提供程序'MSDAORA'无法开始分布式事务。 OLE DB错误跟踪[OLE/DB提供程序'MSDAORA'ITransactionJoin :: JoinTransaction返回0x8004d01b]。TSQL SQL 2000存储过程游标

+1

你刚使用SQL Server吗? MSDAORA是Oracle的提供商。 如果你显示导致问题的SQL,这将有所帮助。 – 2010-05-19 14:59:50

+0

我在一个查询中想到游标和分布式事务以及动态SQl,都不寒而栗。必须有更好的方法来做到这一点。逐行处理是不好的,你想使用数据集。 – HLGEM 2010-05-21 15:05:12

回答

0

您不应该为此使用光标。我的猜测将是一个与游标和插入到表中的冲突。

请发布代码和您正在解决的问题,以便我们可以帮助您正确编写它。