日期:2014-05-17  浏览次数:20704 次

跨服务器查询,求大神帮助?
在192.168.1.2库中运行,查询192.168.1.3库的数据,两个数据库结构一模一样
SQL2008里运行正常,在软件中运行报错:
异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。


USE [ksoa]
GO
/****** Object:  StoredProcedure [dbo].[kfwqcx]    Script Date: 06/11/2013 13:49:31 ******/
SET ANSI_NULLS ON
GO
SET ANSI_WARNINGS ON 
GO
SET XACT_ABORT on
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER proc [dbo].[kfwqcx]  
as  
SET XACT_ABORT on
select distinct d.rq, a.djbh,b.duifname as '请货分店','zda' as s_fdbs  
,a.yfdcs  --add  
from opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.chasfdqh a   
inner join opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.lsdtxb b on a.fdbs=b.duifbsh  
inner join opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.spkfk c on a.spid=c.spid inner join qinghdjhz d on a.djbh = d.djbh--add  
where b.org_type<>'松散'  
and a.djbh like 'cqh%' and is_fetch<>'是'  
and yfdcs=0  
union all  
select distinct d.rq, a.djbh,b.duifname as '请货分店','zda' as s_fdbs  
,a.yfdcs  --add  
from opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.chasfdqh a    
inner join opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.lsdtxb b on a.fdbs=b.duifbsh  
inner join opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.spkfk c on a.spid=c.spid   
inner join opendatasource('sqloledb','server=192.168.1.3;uid=sa;pwd=123;database=ksoa').ksoa.dbo.qinghdjhz d on a.djbh = d.djbh  --add  
where b.org_type<>'松散'  
and a.djbh like 'cqh%' and is_fetch<>'是'  
and yfdcs=1  
--and c.is_zc='是'  --add  
order by a.yfdcs,a.djbh  

------解决方案--------------------
 加上
set ANSI_NULLS on;
set ANSI_WARNINGS  on;