Attualmente sto eseguendo una suite software di terze parti, che utilizza SQL Server come database. Ho una seconda istanza di SQL Server in esecuzione in una posizione diversa e alcune app che sto creando in quell'istanza SQL Server deve accedere ad alcuni dati nel software di terze parti. Quindi, ho creato una connessione ODBC tra le caselle e configurato il server SQL di terze parti come server collegato sulla mia versione di SQL Server. Come test, mi sono imbattuto qualcosa come la seguente dichiarazione del mio server SQL, l'accesso a uno dei tavoli del terze parti:Database SQL Server collegato con errore "metadati incoerenti"
SELECT * FROM LinkedServerName.SchemaName.dbo.TableName
Al che ho ricevuto questo errore:
OLE DB error trace [Non-interface error: Column 'TableRowVersion' (compile-time
ordinal 4) of object '"SchemaName"."dbo"."TableName"' was reported to have a
DBCOLUMNFLAGS_ISROWVER of 0 at compile time and 512 at run time].
Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' supplied inconsistent metadata for a column. Metadata
information was changed at execution time.
Questo errore è il lo stesso per qualsiasi altro tavolo provo ad accedere. Cosa significa questo errore e c'è un modo per aggirarlo?
Dal momento che la domanda è su un collegamento a un altro server MS SQL e non alcuni altri DBMS (MySQL, PostgreSQL, ...) questa risposta è la più valida per questo caso (nativo è il modo più performante di ODBC). Ma non funzionerà se il tuo secondo server non è un server MS SQL – DestyNova