Otrzymałem następujący komunikat o błędzie dotyczący zapytania SQL, które uruchamiam w programie. SQL Server 2005 T-SQL.
Heterogeniczne zapytania wymagają ustawienia
ANSI_NULLS
iANSI_WARNINGS
opcji dla połączenia. Zapewnia to spójną semantykę zapytań. Włącz te opcje, a następnie ponownie uruchom zapytanie. (dotkliwość 16)
Naprawienie tego jest łatwe, ustawione ANSI_NULLS
i ANSI_WARNINGS
ON
, ale chciałem wiedzieć, czym jest zapytanie heterogeniczne. Wyszukiwarka Google wyświetla dziesiątki wyników, które każą mi ustawić ANSI_NULLS
i ANSI_WARNINGS
nic nie wyjaśnia, co oznacza ten termin. Zapytanie to:
UPDATE SRV.DB.DBO.TABLE SET Column=
(SELECT Column
FROM SRV1.DB.DBO.TABLE)
Myślę, że jest to spowodowane połączeniem się z wieloma silnikami baz danych w jednym zapytaniu, ponieważ w przeciwnym razie nigdy nie dostałem tego błędu.
Czy „heterogeniczny” odnosi się tylko do odpytywania dwóch różnych silników baz danych w tym kontekście?
źródło
Niejednorodny oznacza po prostu inny. Tak więc heterogeniczne zapytanie znajduje się w jednej bazie danych i wysyła zapytanie do INNEJ bazy danych. Ponieważ bazy danych są różne, istnieje możliwość, że ustawienia będą różne, co może spowodować inne wyniki niż zamierzono.
źródło