为合并两存储过程,把结果放入temp table时,执行下面结果 sql 时,出现以下error, 谁遇到过这样的问题,在网上也没找到具体的解决方法。
insert into #tmp exec [10.54.44.78].cashpro.dbo.[spRpt_R169_temp] '','2014-12-15','2014-12-21','','D0694','',''
Msg 1206, Level 18, State 196, Line 1
The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.
亲, 你先确定 exec这个过程能正确运行
hi,单独执行下面的sql是可以查出数据
exec [10.54.44.78].cashpro.dbo.[spRpt_R169_temp] '','2014-12-15','2014-12-21','','D0694','',''
且执行以下sql,是可以插入临时table呢
insert into #tmp exec [IRS_Report169_List_temp_gt] '2014-Dec-15','2014-Dec-21','',''
@小柑: 你的临时表是本机的, 你把想链接服务器那边的数据插到本机的临时表?
@问天何必:
临时表是利用了硬盘(tempdb数据库), 临时表不能这么用, 试试表变量。
DECLARE @a TABLE (id INT, NAME NVARCHAR)
INSERT INTO @a( id, [NAME])VALUES(1,'abc')
SELECT * FROM @a
自己改。
@问天何必: 哦,是这个问题吗,我试了下放到连接那边是可以的呢。
我只要是想把链接那边的Procedure 和本机的一个Procedure结果合并到tmp table
这个可以实现吗,本机是可以查出连接那边的数据
@小柑: 看一看临时表与表变量的区别
@问天何必: 哦,好的,我试试,非常感谢!我没有分了,祝Merry christmas!
@小柑: 我用表变量试了,依然还是要报这个错,看来没法保存本地了吗?
Sql语法错误!
怎么错了呢
@小柑: select * into #temp exec [10.54.44.78].cashpro.dbo.[spRpt_R169_temp] '','2014-12-15','2014-12-21','','D0694','',''
insert into #tmp select *(需要的字段) from #temp
--这样试试
@一生有你.Net:我试了会报以下的错误
insert into #temp
select * from exec [10.54.44.78].cashpro.dbo.[spRpt_R169_temp] '','2014-12-15','2014-12-21','','D0694','',''
Incorrect syntax near the keyword 'exec'.
用表变量吧,临时表这样用是不行。
变量?怎么用呢?
我试将结果集放到sever的table里,再取得sever的table的数据到本地的