J'ai reçu le message d'erreur suivant concernant une requête SQL que j'exécute dans un programme. SQL Server 2005 T-SQL.
Les requêtes hétérogènes nécessitent que les options
ANSI_NULLS
etANSI_WARNINGS
soient définies pour la connexion. Cela garantit une sémantique de requête cohérente. Activez ces options, puis relancez votre requête. (gravité 16)
Le réparer est facile, défini ANSI_NULLS
et ANSI_WARNINGS
ON
, mais je voulais savoir ce qu'est une requête hétérogène. Une recherche Google fait apparaître des dizaines de résultats me disant de définir ANSI_NULLS
et ANSI_WARNINGS
, rien expliquant ce que le terme signifie. La requête est:
UPDATE SRV.DB.DBO.TABLE SET Column=
(SELECT Column
FROM SRV1.DB.DBO.TABLE)
Je pense que cela est dû à la connexion à plusieurs moteurs de base de données dans une seule requête, car je n'ai jamais eu cette erreur autrement.
"Hétérogène" fait-il simplement référence à l'interrogation de deux moteurs de base de données différents dans ce contexte?
la source
Hétérogène signifie simplement différent. Une requête hétérogène se trouve donc dans une base de données et interroge une base de données DIFFÉRENTE. Étant donné que les bases de données sont différentes, cela évoque la possibilité que les paramètres soient différents, ce qui pourrait entraîner des résultats différents de ceux prévus.
la source