How to Set Compatibility Level for SQL Server 2008 or 2005 Database Comment faire pour définir Niveau de compatibilité pour SQL Server 2008 ou 2005 Base de données

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: Lorsque les données de sélection ou effectuant une recherche sur Microosft SQL Server 2008 ou SQL Server 2005 de base de données, le message d'erreur suivant ou de l'échec mai être retourné:

[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] [Msg 4147, Niveau 15, État 1, Ligne 4] La requête utilise non-ANSI opérateurs de jointure externe ("*=" ou "=*"). 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. Pour exécuter cette requête sans modification, s'il vous plaît définir le niveau de compatibilité de base de données actuelle à 80, en utilisant l'option SET COMPATIBILITY_LEVEL de ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Il est fortement recommandé de réécrire la requête en utilisant ANSI opérateurs de jointure externe (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions Dans les futures versions
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. de SQL Server, la non-ANSI rejoindre les opérateurs ne seront pas soutenus même dans les modes de compatibilité descendante.


or, ou,

Msg 4147, Level 15, State 1, Line 3 Msg 4147, Niveau 15, État 1, Ligne 3
The query uses non-ANSI outer join operators (”*=” or “=*”). La requête utilise non-ANSI opérateurs de jointure externe ("*=" ou "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Pour exécuter cette requête sans modification, s'il vous plaît définir le niveau de compatibilité de base de données actuelle à 80 ou inférieur, en utilisant la procédure stockée sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Il est fortement recommandé de réécrire la requête en utilisant ANSI opérateurs de jointure externe (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Dans les futures versions de SQL Server, la non-ANSI rejoindre les opérateurs ne seront pas soutenus même dans les modes de compatibilité descendante.

The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. L'erreur se produit parce que Microsoft a abandonné le soutien pour et éliminé l'ancienne *= et =* opérateurs de jointure externe.

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. Afin de corriger l'erreur SQL Server ci-dessus, DB administrateur doit définir le niveau de compatibilité de base de données à 80, ce qui équivaut avec SQL Server 2000 comme solution de contournement temporaire. 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. Bien sûr, la meilleure solution est de modifier les instructions SQL ou des requêtes de code pour supprimer le style old-opérateurs de jointure avec la norme actuelle jointure SQL syntax.

For example, SQL query below is not valid: Par exemple, une requête SQL ci-dessous n'est pas valide:

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: Et devrait être remplacé par le code suivant:

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: Ou ce qui suit abrégée jointure interne déclaration:

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. Pour l'administrateur qui ne peut pas changer le code, la solution de contournement est plus facile de revenir sur le niveau de compatibilité de la base de données afin de fournir à la compatibilité avec les anciens de style des jointures. 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 procédures stockées (obsolète) ou Transact-SQL peut être utilisé pour définir certains (partiellement, pas tous) des comportements de base de données pour être compatible avec la version antérieure de SQL Server. This Cet MSDN article Article MSDN provides overview on what behaviors are changed on each compatibility level. : un aperçu de ce que les comportements sont modifiés à chaque niveau de compatibilité.

Version of SQL Server that can be reverted to can be one of the following: Version de SQL Server qui peuvent être reversées peut être l'une des opérations suivantes:

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. Note: Niveau de compatibilité 60, 65 et 70 ne sont plus disponibles dans SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. Et la future version de SQL Server ne supportera plus que deux (2) version antérieure de la compatibilité descendante. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Une base de données contenant une vue indexée ne peut pas être changé pour un niveau de compatibilité inférieur à 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. Ne prenons également note que, quand une base de données est réglé sur le mode de compatibilité descendante, certaines des nouvelles fonctionnalités mai être perdu, comme support de SQL CLR et diagrammes SSMS pour la base de données. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. A côté, le mode de compatibilité affecte les comportements que pour la base de données spécifiée, et non pour l'ensemble du serveur.

Steps to Change and Set Compatibility Level of A Database in SQL Server Étapes à suivre pour modifier et définir Niveau de compatibilité de base de données dans SQL Server

The following SQL commands can be issued in SQL Server Management Studio Query window. Les commandes SQL suivantes peuvent être émises dans SQL Server Management Studio fenêtre de requête. Remember to execute Go after each command. N'oubliez pas d'exécuter Allez après chaque commande.

  1. Optional: Set the database to single user access mode: Facultatif: Définissez la base de données en mode utilisateur unique d'accès:

    ALTER DATABASE database_name SET SINGLE_USER;

  2. Set the database compatibility level to one of the earlier version stated above: Réglez le niveau de compatibilité à une base de données de la version antérieure a indiqué ci-dessus:

    Transact-SQL Method Transact-SQL Méthode

    ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }

    For example, Par exemple,

    ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 ALTER DATABASE SET my_db COMPATIBILITY_LEVEL = 80

    sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel procédure stockée Méthode

    EXEC sp_dbcmptlevel database_name, compatibility_level value;

    For example, Par exemple,

    EXEC sp_dbcmptlevel my_db, 90; EXEC my_db sp_dbcmptlevel, 90;

  3. Optional: Put back the database in multiuser access mode: Facultatif: Remettre la base de données en mode d'accès multi-utilisateurs:

    ALTER DATABASE database_name SET MULTI_USER;

IMPORTANT : The page is machine translated and provided "as is" without warranty. IMPORTANT: La page est traduit et machine fournis «tels quels», sans garantie. Machine translation may be difficult to understand. La traduction automatique mai être difficile à comprendre. Please refer to S'il vous plaît se référer à original English article Article original en anglais whenever possible. mesure du possible.


One Response to “How to Set Compatibility Level for SQL Server 2008 or 2005 Database” One Response to "How to Set Niveau de compatibilité pour SQL Server 2008 ou 2005 Base de données"

  1. Microsoft – SQL Server – Strategies for addressing the Issue of deprecated SQL « Daniel Adeniji's Trail Microsoft - SQL Server - Stratégies pour aborder la question de Trail obsolète SQL «Daniel Adeniji
    August 14th, 2009 03:17 14 août 2009 03:17
    1 1

    [...] 7)      My Digital Life. [...] 7) My Digital Life. How to Set Compatibility Level for SQL Server 2008 or 2005 Database. Comment faire pour définir Niveau de compatibilité pour SQL Server 2008 ou 2005 Base de données. http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005-.. http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005- .. . . [...] [...]

Leave a Reply Laissez une réponse

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> Vous pouvez utiliser ces tags: fete_christel <abbr titre=""> <b> <blockquote cite=""> <cite> <code> <del datetime = ""> <em> <<q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. Abonnez-vous aux commentaires a été désactivé. To receive notification of latest comments posted, subscribe to Pour recevoir la notification des derniers commentaires postés, abonnez-vous à My Digital Life Comments RSS feed My Digital Life Comments RSS Feed or ou register to receive s'inscrire pour recevoir new comments in daily email digest. nouveaux commentaires dans le courriel quotidien digérer.
Custom Search

New Articles Nouveaux Articles

Incoming Search Terms for the Article Scruter Les terms pour un jour Article

sql server compatibility level SQL Server niveau de compatibilité - -- sql 2008 compatibility mode SQL 2008 en mode de compatibilité - -- sql server 2008 compatibility mode SQL Server 2008 en mode de compatibilité - -- sql compatibility level niveau de compatibilité SQL - -- compatibility level sql server compatibilité au niveau du serveur SQL - -- sql server 2008 2005 compatibility mode sql server 2008 2005 mode de compatibilité - -- the option 100 for compatibility mode is not supported l'option 100 pour le mode de compatibilité n'est pas supporté - -- sql compatibility mode compatibilité avec le mode SQL - -- sql compatibility mode 80 mode de compatibilité SQL 80 - -- sql 2008 compatibility SQL 2008 compatibilité - -- the query uses non-ansi outer join operators or . la requête utilise non-ANSI opérateurs de jointure externe ou. to run this query without modification pour exécuter cette requête sans modification - -- sql server 2008 compatibility setting SQL Server 2008 paramètre de compatibilité - -- "SQL compatibility mode" "SQL mode de compatibilité" - -- "sql server 2005 express" compatibility "server 2008" "SQL Server 2005 Express" compatibilité "server 2008" - -- *= non ansi outer join operators *= Non ansi opérateurs de jointure externe - -- 2008 to 2005 backward compatibility 2008 à 2005 la compatibilité descendante - -- alter database compatibility_level ALTER DATABASE compatibility_level - -- Compatibilty in sql server Compatibilité au serveur SQL - -- Compatibility Level to SQL Server 2008 Niveau de compatibilité à SQL Server 2008 - -- compatibility mode sql server 2008 compatibilité avec le mode SQL Server 2008 - -- how to remove program compatibility notification for sql server 2008 comment faire pour supprimer la notification de compatibilité des programmes pour le serveur SQL 2008 - -- how to change sql server 2008 compatibility 2005 Comment faire pour changer de serveur SQL 2008 de compatibilité 2005 - -- how to check compatibility level multiple databases sql Comment faire pour vérifier le niveau de compatibilité des bases de données SQL multiples - -- how to set compatibility mode ms-sql Comment configurer le mode de compatibilité MS-SQL - -- how to set backward-compatibility mode sql server 2005 Comment configurer le mode de compatibilité descendante SQL Server 2005 - -- join examples of sql server 2008 Joignez-vous des exemples de SQL Server 2008 - -- LEFT JOIN non ansi IN SQL SERVER 2008 LEFT JOIN ANSI non dans SQL Server 2008 - -- running SQL server 2008 in compatibility 2005 mode qui exécute SQL Server 2008 en mode de compatibilité 2005 - -- script compatibility mode sql script de compatibilité mode SQL - -- set compatibilitylevel mis compatibilitylevel - -- set sql server compatibility mode définir SQL Server en mode de compatibilité - -- Set Database Compatability Current Database Set de base de données compatibilité actuelle base de données - -- set sql server 2008 in sql server 2000 mode ensemble de données SQL Server 2008 dans SQL Server 2000 en mode - -- sql server compatibility level is set to 2005 after upgrade sql server niveau de compatibilité est défini à 2005 après mise à niveau - -- sql 2008 backward SQL 2008 vers l'arrière - -- sql 2008 backwards compatible sql 2000 SQL 2008 vers l'arrière compatible SQL 2000 - -- sqlserver set sqlserver ensemble - -- SQl compatability level 80 SQl niveau de compatibilité 80 - -- sql 2008 compatibility mode SQL 2008 en mode de compatibilité - -- sql server SET DATABASE compatibility level SQL Server est défini de compatibilité niveau base de données - -- SQL Server + To run this query without modification, please set the comp": SQL Server + Pour exécuter cette requête sans modification, s'il vous plaît définir la maquette ": - -- sql 2008 compatibilty SQL 2008 compatibilité - -- sql server 2008 set 80 SQL Server 2008 fixée 80 - -- sql 2008 mydigitallife SQL 2008 mydigitallife - -- sql server 2000 outer join compatiability sql server 2000 jointure externe compatiability - -- sql compatibility mode 2008 mode de compatibilité SQL 2008 - -- SQL Server 2008 non-ansi joins SQL Server 2008 non-jointures ANSI - -- sql server change compatibility mode SQL Server changement de mode de compatibilité - -- The query uses non-ANSI outer join operators ("*=" or "=*"). La requête utilise non-ANSI opérateurs de jointure externe ("*=" ou "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel Pour exécuter cette requête sans modification, s'il vous plaît définir le niveau de compatibilité de base de données actuelle à 80 ou inférieur, en utilisant la procédure stockée sp_dbcmptlevel - -- To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Pour exécuter cette requête sans modification, s'il vous plaît définir le niveau de compatibilité de base de données actuelle à 80 ou inférieur, en utilisant la procédure stockée sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTE Il est fortement recommandé de réécrire la requête en utilisant ANSI opérateurs de jointure externe (LEFT OUTER JOIN, RIGHT OUTE - --