Che cosa è una “domanda eterogenea”?
-
16-10-2019 - |
Domanda
ho ottenuto il seguente messaggio di errore per quanto riguarda un query SQL sono in esecuzione in un programma. SQL Server 2005 T-SQL.
Le query eterogenee richiedono le opzioni
ANSI_NULLS
eANSI_WARNINGS
da impostare per la connessione. Questo assicura semantica di query coerenti. Attivare queste opzioni, quindi eseguire nuovamente la query. (Gravità 16)
Risoluzione è facile, insieme ANSI_NULLS
e ANSI_WARNINGS
ON
, ma volevo sapere cosa una query eterogenea è. Una ricerca di Google porta in primo piano decine di risultati che mi diceva di ANSI_NULLS
set e ANSI_WARNINGS
, nulla che spiega cosa significa il termine. La query è:
UPDATE SRV.DB.DBO.TABLE SET Column=
(SELECT Column
FROM SRV1.DB.DBO.TABLE)
Sto pensando che questo è dovuto al collegamento a più motori di database in una query, come non ho mai ottenuto questo errore altrimenti.
Ha "eterogenei" si riferisce solo ad interrogare due motori di database diversi in questo contesto?
Soluzione
La "eterogenei" solo si riferiscono a interrogare due motori di database diversi in questo contesto?
In sostanza, sì. Una query "eterogenea" viene eseguito su un "server collegato eterogenea". Tutti query a questo server collegato sarà eterogenea.
E "eterogeneo" è un sottoinsieme di distribuito query
- i dati memorizzati in più istanze di SQL Server Distributed.
- i dati eterogenei memorizzati in varie fonti di dati relazionali e non relazionali si accede utilizzando un provider OLE DB.
Ma pops "eterogenee" su di tanto in tanto:
La capacità di query emissione distribuita, aggiornamenti, comandi e operazioni su fonti dati eterogenei in tutta l'azienda.
Un server collegato consente l'accesso a distribuito, eterogenea query su origini dati OLE DB.
E un esempio MSDN di interrogare Active Directory in "Unire dati eterogenei"
E MSDN nuovo "Replica di database eterogenei"
Altri suggerimenti
Al meglio delle mie conoscenze sì.
Un problema che vedo con la query è che non si ha modo di sapere che cosa fila sta per tornare dalla vostra tabella collegata. È questo codice appena fittizio o è la query scritta in questo modo?
eterogeneo significa solo diverso. Quindi una query eterogenea è in un database e sta interrogando un database diverso. Dal momento che le basi di dati sono diversi, porta in primo piano la possibilità di impostazioni che sono diversi che potrebbero causare risultati diversi rispetto a quanto previsto.