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 e ANSI_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?

È stato utile?

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:

su MSDN

La capacità di query emissione distribuita, aggiornamenti, comandi e operazioni su fonti dati eterogenei in tutta l'azienda.

sp_addlinkedserver

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top