MS SQL 2000 problems with linked servers

1 отговора 279 прегледа
#1

MS SQL 2000 problems with linked servers

Здравейте имам нужда от помощ,
имам следния проблем


Error 7405: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS
options to be set for the connection. This ensures consistent query
semantics. Enable these options and then reissue your query.


Линквам два сървара и стартирам сторед процедура
преди това сетвам ANSI_NULLS and ANSI_WARNINGS ON и грешката пак е налице
Някой сблъсквал ли се е с този проблем и как го е решил

Нещо такова представлява

SET ANSI_NULLS on
SET ANSI_WARNINGS on
GO
CREATE PROCEDURE SBO
@data char (8),
@data1 char(8) ,
@mes int,
@god int

AS

INSERT INTO [server].[db].[dbo].SBO
SELECT @god as godina, @mes as Mes, Klon, inspec as teller, 'pr0500' as type_transaction, COUNT(*) AS broi , sum(AGR_AMT_EQU) as Suma
FROM LON
WHERE (DATA_kl between @data and @data1) AND
(
(Apl = '11')
or
((Apl = '15') and (Type between '5500'and '5540'))
)
AND
(Acc like '0%')
GROUP BY Klon, inspec
order by Klon, inspec


Та според мен проблема е че с процедурата сетвам ANSI_NULLS and ANSI_WARNINGS ON само на сервера на който я стартирам а на другия не са сетнати обаче ако ги сетна и на двата сервера дали няма да прецакам стари процедури които си вървят досега без проблем

Отговор
в отговор на Joya #2

Re: MS SQL 2000 problems with linked servers

Двете настройки на connection-а които се запазват при създаване на записана са QUOTED_IDENTIFIER и ANSI_NULLS. Просто единствено те имат отношение към парсването на SQL сорса на записаната/view-то.

Така че грешката която получаваш няма общо със създаването на записаната, a по-скоро с настройките на connection-а през който я изпълняваш. Пробвай така:

SET ANSI_NULLS, ANSI_WARNINGS ON
EXEC dbo.SBO ...

Всъщност най-добре е ако ще ползваш подобни distributed изпълнения да сложиш инициализацията на настройките в data-access layer-а -- веднага след отваряне на connection-а.

cheers,
</wqw>

Отговор