How to Set Compatibility Level for SQL Server 2008 or 2005 Database Com configurar el nivell de compatibilitat per SQL Server 2008 o 2005 Base de dades
When selecting data or performing query on Microosft SQL Server 2008 or SQL Server 2005 database, the following error message or failure may be returned: En seleccionar les dades o la realització de la consulta sobre Microosft SQL Server 2008 o SQL Server 2005 base de dades, el següent missatge d'error o el fracàs pot ser retornat:
[Microsoft][ODBC SQL Server Driver][SQL Server][Msg 4147, Level 15, State 1, Line 4] The query uses non-ANSI outer join operators (”*=” or “=*”). [Microsoft] [ODBC SQL Server Driver] [SQL Server] [Msj 4147, Nivell 15, Estat 1, Línia 4] La consulta utilitza la no-ANSI outer join operadors ("*=" o "=*"). To run this query without modification, please set the compatibility level for current database to 80, using the SET COMPATIBILITY_LEVEL option of ALTER DATABASE. Per executar aquesta consulta sense modificacions, si us plau, defineixi el nivell de compatibilitat de base de dades actual a 80, utilitzant la sentència SET COMPATIBILITY_LEVEL opció de ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Es recomana encaridament a reescriure la consulta utilitzant ANSI outer join operadors (LEFT OUTER Join, OUTER Join DRET). In the future versions En les versions futures
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. de SQL Server, no unir-se als operadors ANSI no es recolza fins i tot en els modes de compatibilitat cap enrere.
or, o,
Msg 4147, Level 15, State 1, Line 3 Missatge 4147, Nivell 15, Estat 1, Línia 3
The query uses non-ANSI outer join operators (”*=” or “=*”). La consulta utilitza la no-ANSI outer join operadors ("*=" o "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Per executar aquesta consulta sense modificacions, si us plau, defineixi el nivell de compatibilitat de base de dades actual a 80 o inferior, usant sp_dbcmptlevel procediment emmagatzemat. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Es recomana encaridament a reescriure la consulta utilitzant ANSI outer join operadors (LEFT OUTER Join, OUTER Join DRET). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. En el futur, les versions de SQL Server, no unir-se als operadors ANSI no es recolza fins i tot en els modes de compatibilitat cap enrere.
The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. L'error ocorre perquè Microsoft ha disminuït el suport i eliminat antiquat i *= =* exterior unir-se operadors.
In order to fix the SQL Server error above, DB administrator has to set the database compatibility level to 80, which equivalent with SQL Server 2000 as a temporary workaround. Per tal de solucionar l'error anterior de SQL Server, DB administrador ha de configurar la base de dades a nivell de compatibilitat 80, que equival a SQL Server 2000 com una solució temporal. Of course, the best solution is to modify the SQL statements or queries code to remove the old-style join operators with current standard SQL join syntax. Per descomptat, la millor solució és modificar les consultes SQL o codi per eliminar el vell estil d'unir-se amb els actuals operadors d'unir-se a la sintaxi SQL estàndard.
For example, SQL query below is not valid: Per exemple, sota de la consulta SQL no és vàlida:
SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id *= v.object_id;
And should be replaced with the following code: I ha de ser reemplaçat amb el següent codi:
SELECT o.name FROM sys.objects o LEFT JOIN sys.views v ON o.object_id = v.object_id;
Or the following abbreviated inner join statement: O la següent declaració abreujada inner join:
SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id = v.object_id;
For administrator who can't change the code, the easiest workaround is to revert the compatibility level of the database in order to provide the backward compatibility to old-style joins. Per a l'administrador que no poden canviar el codi, la millor solució és tornar a la compatibilitat a nivell de la base de dades amb la finalitat de proporcionar compatibilitat amb versions anteriors a la antigua usanza uneix. sp_dbcmptlevel stored procedures (deprecated) or Transact-SQL can be used to set certain (partially, not all) database behaviors to be compatible with the earlier version of SQL Server. sp_dbcmptlevel procediments emmagatzemats (obsolet) o de transact-SQL pot ser usat per fixar determinats (en part, no totes) de base de dades de conductes per ser compatible amb la versió anterior de SQL Server. This Això MSDN article L'article de MSDN provides overview on what behaviors are changed on each compatibility level. visió general del que estableix conductes es canvien en cada nivell de compatibilitat.
Version of SQL Server that can be reverted to can be one of the following: Versió de SQL Server que pot ser tornat a ser un dels següents:
60 = SQL Server 6.0 60 = SQL Server 6.0
65 = SQL Server 6.5 65 = SQL Server 6.5
70 = SQL Server 7.0 70 = SQL Server 7.0
80 = SQL Server 2000 80 = SQL Server 2000
90 = SQL Server 2005 90 = SQL Server 2005
100 = SQL Server 2008 100 = SQL Server 2008
Note: Compatibility level 60, 65, and 70 no longer available in SQL Server 2008. Nota: El nivell de compatibilitat de 60, 65, i 70 no estiguin disponibles a SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. I la futura versió de SQL Server recolzarà només dos (2) abans de la versió de compatibilitat amb versions anteriors. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Una base de dades amb un indexat vista no es pot canviar a un nivell de compatibilitat inferior a 80. Do also take note that when a database is set to backward-compatibility mode, some of the new functionalities may be lost, such as SQL CLR support and SSMS diagrams for the database. També es prenen nota de que quan una base de dades està configurat en mode de compatibilitat cap enrere-, algunes de les noves funcionalitats es poden perdre, com SQL CLR SSMS i esquemes de suport per a la base de dades. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Al costat, el mode de compatibilitat només afecta els comportaments de la base de dades especificada, no per a tot el servidor.
Steps to Change and Set Compatibility Level of A Database in SQL Server Passos per al Canvi i el nivell de compatibilitat de base de dades en SQL Server
The following SQL commands can be issued in SQL Server Management Studio Query window. Les següents comandes SQL poden emetre en SQL Server Management Studio Consulta finestra. Remember to execute Go after each command. Recordar Anar a executar després de cada comanda.
- Optional: Set the database to single user access mode: Opcional: Configurar la base de dades per usuari únic mode d'accés:
ALTER DATABASE database_name SET SINGLE_USER; - Set the database compatibility level to one of the earlier version stated above: Definiu la base de dades a un nivell de compatibilitat de la versió anterior ja s'ha dit:
Transact-SQL Method Mètode de transact-SQL
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }For example, Per exemple,
ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 ALTER DATABASE my_db CONJUNT COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel Stored Procedure Method Mètode sp_dbcmptlevel procediment emmagatzemat
EXEC sp_dbcmptlevel database_name, compatibility_level value;For example, Per exemple,
EXEC sp_dbcmptlevel my_db, 90; EXEC sp_dbcmptlevel my_db, 90;
- Optional: Put back the database in multiuser access mode: Opcional: Posar de nou la base de dades en mode d'accés multiusuari:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT : The page is machine translated and provided "as is" without warranty. IMPORTANT: La pàgina està traduïda màquina i proporciona "tal qual" sense garantia. Machine translation may be difficult to understand. La traducció automàtica pot resultar difícil d'entendre. Please refer to Si us plau, consulteu original English article article original anglès whenever possible. sempre que sigui possible.
Related Articles Articles relacionats
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Desinstal i eliminar múltiples instàncies de base de dades de Microsoft SQL Server 2005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft DreamSpack Ofertes Descarrega gratuïta i de llicència de Visual Studio 2008, Server 2003, SQL Server 2005 i Més
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE Optimitzar SQL Server 2000, 2005 o 2008 a Grans RAM del sistema de bloqueig de pàgines en memòria i Awe
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue Descarregar Actualització per a Windows 7 i Server 2008 R2 Beta (KB967062) per fixar comú de compatibilitat d'aplicacions d'emissió
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections S'ha produït un error Si bé establir una connexió a SQL Server 2005 que no permet connexions remotes i locals
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2005 R2 disponible per descàrrega lliure
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Sistema de verificació de compatibilitat de Microsoft Nova Via Application Compatibility Toolkit versió 5.5
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Descàrrega Directa Enllaços
- Internet Explorer (IE) Hang When Opening Virtual Server 2005 Web Administration Site Internet Explorer (IE) bloquejar quan Obertura Virtual Server 2005 des del lloc web de l'Administració
- Change Oracle Database User Password Canvi de base de dades Oracle Usuari Contrasenya









































