首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求大神围观!链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 回到了消息 "不能在手动

2013-09-06 
求大神围观!链接服务器(null)的 OLE DB 访问接口 SQLNCLI 返回了消息 不能在手动或分布事务模式下创

求大神围观!链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "不能在手动或分布事务模式下创建新的连接。"。
T-SQL跨服务器 "not in" 语句问题!

水哥发过类似求助帖,说是05 SP3跟新包安装后解决了,我试了还是不行。http://bbs.csdn.net/topics/290059125


CREATE VIEW AIS_titem
AS
select FNumber,FName,FShortNUmber,FItemClassID from openrowset( 'SQLOLEDB', '192.168.0.150'; 'sa'; 'sa',AIS20130121103113.dbo.t_Item)

--可以
SELECT PartNo,parttype=CASE WHEN parttype='原材料' THEN '外购' WHEN parttype='产品' THEN '自制' END,partName,isnull(unitmeasure,'个'),isnull(partspec,''),isnull(FigureNo,'') FROM parts 
WHERE partno IN(SELECT FNumber  FROM AIS_titem WHERE FItemClassID=4)

--不可以
SELECT PartNo,parttype=CASE WHEN parttype='原材料' THEN '外购' WHEN parttype='产品' THEN '自制' END,partName,isnull(unitmeasure,'个'),isnull(partspec,''),isnull(FigureNo,'') FROM parts 
WHERE partno NOT IN(SELECT FNumber  FROM AIS_titem WHERE FItemClassID=4)

--报错提示:
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "不能在手动或分布事务模式下创建新的连接。"。
消息 7320,级别 16,状态 2,第 2 行
无法对链接服务器 "(null)" 的 OLE DB 访问接口 "SQLNCLI" 执行查询"SELECT TOP 1 1 FROM "AIS20130121103113"."dbo"."t_Item" "Tbl1006" WHERE "Tbl1006"."FItemClassID"=(4)"。

select SQL 服务器
[解决办法]
try this,

SELECT a.PartNo,parttype=CASE WHEN a.parttype='原材料' THEN '外购' WHEN a.parttype='产品' THEN '自制' END,
       a.partName,isnull(a.unitmeasure,'个'),isnull(a.partspec,''),isnull(a.FigureNo,'') 
FROM parts a
left join AIS_titem b on a.partno=b.FNumber and b.FItemClassID=4
where b.FNumber is null

[解决办法]
--换种方式写吧,这个错误,不排除是SQL SERVER的BUG。如果NOT EXISTS不行,再换成JOIN试试


SELECT  PartNo ,
        parttype = CASE WHEN parttype = '原材料' THEN '外购'
                        WHEN parttype = '产品' THEN '自制'
                   END ,
        partName ,
        ISNULL(unitmeasure, '个') ,
        ISNULL(partspec, '') ,
        ISNULL(FigureNo, '')
FROM    parts b
WHERE   NOT EXISTS ( SELECT FNumber
                     FROM   AIS_titem a
                     WHERE  a.FItemClassID = 4
                            AND a.FNumber = b.partno )

热点排行