--核心出错代码如下,其中db是数据库名,tb是表名
...
print 3
--各种表初始化
if @province='浙江'
begin
set @table3='db..tb'
print 4
end
...--执行后如下:
/*
3
消息 8501,级别 16,状态 3,第 1 行
服务器 '......' 上的 MSDTC 不可用。
*/--解释:我只是想动态sql下面操作的时候拼上这个表,怎么会不能用呢?我直接动态sql别的都可以啊?奇怪
--好像不是MSTDC没打开的原因啊,求解!

解决方案 »

  1.   

    我如果动态sql是要插远程服务器的
    且链接远程服务器已经创建了且是通的
    执行到此语句就断了,执行前我把动态sql拼出来的语句打印出来了,如下insert into db36.cmpp.dbo.tb_Black(mobile,spnumber,flag,operator) select '13211111111','11111111',1,'ig'直接执行是可以执行成功的,但放到过程里,到这就断了,纳闷啊?
      

  2.   


    exec sp_addlinkedserver ...
    exec sp_addlinkedsrvlogin ...
    我是这样建的持久的啊,以前在别个过程里直接调用select X from db36.cmpp.dbo.tb_Black都是可以的。动态拼了后却不行了? 
      

  3.   

    其实问题就是insert 链接服务器的表 select XXX from 本地服务器
    时如果用动态sql就报错
    用普通sql就没问题。
    why?求救啊!!!!!
      

  4.   

    可能和你操作的电脑操作系统环境有关,换电脑或系统试试。我就遇到过XP 和win2003链接服务器不正常,2台win2003就是正常的
      

  5.   

    可能和你操作的电脑操作系统环境有关,换电脑或系统试试。我就遇到过XP 和win2003链接服务器不正常,2台win2003就是正常的
      

  6.   

    我是2台win2003服务器之间...内牛满面啊!!!
    为什么要这么坑爹