Domanda

Qualcuno ha una risposta definitiva al riguardo Oggetti di gestione SQL Server è compatibile con SQL Server 7.0?I documenti affermano:

Poiché SMO è compatibile con SQL Server versione 7.0, SQL Server 2000, SQL Server 2005 e SQL Server 2008, è possibile gestire facilmente un ambiente multiversione.

Ma provare a connettermi a un'istanza SQL 7 mi dà:

"Questa versione di SQL Server (7.0) non è supportata."

Qualcuno è riuscito a convincere questi 2 a giocare bene?

È stato utile?

Soluzione

è possibile utilizzare SMO per connettersi a SQL Server versioni 7, 2000 e 2005, ma SMO non supporta i database impostati sui livelli di compatibilità 60, 65 e 70.

per SQL Server 7.0 il livello di compatibilità è 70

Ovviamente si tratta di informazioni contrastanti... presumo che se il livello di compatibilità del tuo DB è 70 non puoi connetterti.

Per controllare l'esecuzione:EXEC sp_dbcmptlevel 'nome del database'

Guardando attraverso questo collegamento, sembra che potresti essere in grado di modificare il livello di compatibilità eseguendo questo:

EXEC sp_dbcmptlevel 'nome del database', 80

Ovviamente fai un backup prima di cambiare qualcosa.

Altri suggerimenti

Sembra che i documenti siano sbagliati (e hanno continuato a sbagliarsi negli ultimi 3+ anni!).Ho trovato questo frammento con Riflettore In Microsoft.SqlServer.Management.Common.ConnectionManager, Microsoft.SqlServer.ConnectionInfo

protected void CheckServerVersion(ServerVersion version) {
    if ((version.Major <= 7 || (version.Major > 9)) {
       throw new ConnectionFailureException(
          StringConnectionInfo.ConnectToInvalidVersion(version.ToString())
       );
    }
}

Pertanto, sembra che siano supportati solo SQL 2000 e SQL 2005.Presumibilmente, SQL 2008 (versione 10) ha aggiornato gli assembly SMO.

Peccato: immagino che sia tornato SQL-DMO per questo progetto.

Giusto per dare seguito al tuo commento, SQL 2008 ha il proprio pacchetto SMO che supporta SQL 2000, 2005 e 2008, che in realtà è definitivamente documentato nella loro pagina di download!E hai ragione, non puoi connettere SQL 2005 SMO a SQL 2008.

Ci sono alcuni interessanti aggiornamenti nella versione 10 di SMO in quanto se accedi a proprietà che non esistono nella versione di SQL a cui ti connetti ottieni un'eccezione sensata "Questa proprietà non è disponibile in questa versione di SQL" o parole in tal senso.

Oggetti di gestione Microsoft SQL Server 2008 Gli oggetti di gestione di SQL Server (SMO) sono un modello di oggetti .NET framework che consente agli sviluppatori di software di creare applicazioni sul lato client per gestire e gestire oggetti e servizi SQL Server.Questo modello a oggetti funzionerà con SQL Server 2000, SQL Server 2005 e SQL Server 2008.

Scusa per la risposta tardiva...c'è sostegno parziale per SQL 2000 e SQL 7

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top