How to Set Compatibility Level for SQL Server 2008 or 2005 Database Ako nastaviť kompatibilitu na úrovni SQL Server 2008 alebo 2005 databázy

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: Pri výbere dát alebo vykonávania dotazu na Microosft SQL Server 2008 alebo SQL Server 2005 databázy, na nasledujúce chyba alebo zlyhanie môže byť vrátený:

[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] [správa 4147, Level 15, State 1, Line 4] dotazu používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). 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. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 pomocou SET COMPATIBILITY_LEVEL možnosti ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions V budúcich verziách
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy.


or, alebo,

Msg 4147, Level 15, State 1, Line 3 Msg 4147, Level 15, State 1, Line 3
The query uses non-ANSI outer join operators (”*=” or “=*”). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy.

The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. K chybe dôjde, pretože Microsoft klesla podpora a odstrániť staré-štýl *= a =* vonkajšie pripojiť operátormi.

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. Aby bolo možné stanoviť SQL Server chyba vyššie, DB administrátor nastaviť databáze kompatibility na úrovni 80, čo rovnocenné s SQL Server 2000 ako dočasné riešenie. 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. Samozrejme, že najlepším riešením je zmeniť SQL dotazov alebo výpisy kódu odstrániť staré-štýl pripojiť operátori sa súčasnú normu SQL pripojiť syntaxí.

For example, SQL query below is not valid: Napríklad SQL dotaze nižšie nie je platné:

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: A mala by byť nahradená nasledujúci kód:

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: Alebo nasledujúci zkrácená vnútorný pripojiť vyhlásenie:

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. Pre správcov, ktorí sa nemôžu zmeniť kód, najjednoduchšie riešenie je vrátiť na úroveň kompatibility databázy s cieľom zabezpečiť spätnú kompatibilitu so starými-štýl spája. 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 uložených procedúr (zastaralé) alebo Transact-SQL môžu byť použité na nastavenie niektorých (čiastočne, nie všetky) databázy správania, aby bola kompatibilná so staršou verziou servera SQL Server. This Tento MSDN article MSDN článok provides overview on what behaviors are changed on each compatibility level. poskytuje prehľad o tom, aké správanie sa zmenilo na každej úrovni kompatibility.

Version of SQL Server that can be reverted to can be one of the following: Verzia SQL Server, ktorá môže byť vrátená do môže byť jedným z nasledujúcich:

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. Poznámka: Kompatibilita na úrovni 60, 65 a 70 už k dispozícii v SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. A budúce verzie SQL Server bude podporovať iba dva (2) predchádzajúce verzie spätnej kompatibility. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Databázy obsahujúce indexovanými názoru nemožno zmeniť na kompatibilitu na úrovni nižšej ako 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. Myslíte tiež vziať na vedomie, že v prípade, že databáza je nastavená na spätnej kompatibility-režime, niektoré nové funkcie, môže byť stratená, ako sú SQL CLR servis a SMSD schémy pre databázy. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Vedľa, v režime kompatibility ovplyvňuje správanie iba pre konkrétnu databázu, nie pre celý server.

Steps to Change and Set Compatibility Level of A Database in SQL Server Udalosti k zmene a nastavenie kompatibility Stupeň A do databázy SQL Server

The following SQL commands can be issued in SQL Server Management Studio Query window. Nasledujúce SQL príkazy môžu byť vydávané v SQL Server Management Studio dotazu okna. Remember to execute Go after each command. Nezabudnite spustiť Běž po každom príkazu.

  1. Optional: Set the database to single user access mode: Volitelně: Nastavte Databáza na jedného užívateľa prístupu režim:

    ALTER DATABASE database_name SET SINGLE_USER;

  2. Set the database compatibility level to one of the earlier version stated above: Nastaviť databáze kompatibility úrovni k jednej z predchádzajúcich verzií bolo uvedené vyššie:

    Transact-SQL Method Transact-SQL Metóda

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

    For example, Napríklad

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

    sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel uložených procedúr Metóda

    EXEC sp_dbcmptlevel database_name, compatibility_level value;

    For example, Napríklad

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

  3. Optional: Put back the database in multiuser access mode: Volitelně: Dajte späť do databázy v Viacužívateľské prístup režim:

    ALTER DATABASE database_name SET MULTI_USER;

IMPORTANT : The page is machine translated and provided "as is" without warranty. Upozornenie: Stránka je stroje preložené a poskytované "tak ako sú" bez záruky. Machine translation may be difficult to understand. Strojový preklad môže byť ťažké pochopiť. Please refer to Obráťte sa prosím na original English article Anglický originál článku whenever possible. kedykoľvek je to možné.


Leave a Reply Nechaj Odpoveď

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> Môžete použiť tieto značky: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime = ""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. Vyberajte komentáre funkcia bola vypnutá. To receive notification of latest comments posted, subscribe to Ak chcete dostávať oznámenie o najnovšie komentáre posta, prihláste sa My Digital Life Comments RSS feed My Digital Life Komentáre RSS or alebo register to receive register pre príjem new comments in daily email digest. nové komentáre v dennom email Digest.
Custom Search

New Articles Nové články

Incoming Search Terms for the Article Incoming Vyhľadávanie Podmienky pre článok

The query uses non-ANSI outer join operators ("*=" or "=*"). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy. - -- sql server 2008 compatibility mode SQL Server 2008 režime kompatibility - -- sql server compatibility level sql servera kompatibilita na úrovni - -- compatibility level sql server kompatibilita úrovni SQL Server - -- SQL compatibility level SQL kompatibility úrovni - -- sql compatibility mode sql režime kompatibility - -- sql 2008 compatibility mode sql 2008 režime kompatibility - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). 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. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 pomocou SET COMPATIBILITY_LEVEL možnosti ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy. - -- SET COMPATIBILITY_LEVEL SET COMPATIBILITY_LEVEL - -- database compatibility mode is set to 90 Databáza režime kompatibility je nastavený na 90 - -- sql 2005 compatibility mode sql 2005 režime kompatibility - -- sql server 2005 compatibility level SQL Server 2005 na úrovni kompatibility - -- the option 100 for compatibility mode is not supported 100 pre voľbu režime kompatibility nie je podporovaný - -- sql 2005 compatibility level sql 2005 kompatibilita úrovni - -- database compatibility level Databáza kompatibilita na úrovni - -- sql server 2008 2005 compatibility mode SQL Server 2008 2005 režime kompatibility - -- all všetko - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-reľimy - -- set compatibility level sql 2005 nastaviť kompatibilitu na úrovni SQL 2005 - -- set compatibility_level option of alter database nastaviť compatibility_level možnosť zmeniť databázu - -- sql 2008 compatibility sql 2008 kompatibilitu - -- sql server set compatibility level SQL Server nastaviť kompatibilita na úrovni - -- sql 2008 compatibility level sql 2008 kompatibilita úrovni - -- "The option 100 for compatibility mode is not supported" "Možnosť 100 zlučiteľnosti režimu nie je podporovaná" - -- sql command change compatible 6.5 7 sql príkazu zmeniť kompatibilný 6,5 7 - -- sql server 2008 compatibility SQL Server 2008 kompatibilitu - -- sql compatibility mode 80 sql režime kompatibility 80 - -- To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy. - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Je dôrazne odporúčané, aby prepísať dotaz pomocou ANSI vonkajšie pripojiť operátorov (Leve VONKAJŠIE PRIPOJENIE, PRÁVO VONKAJŠIE PRIPOJENIE). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. V budúcich verziách servera SQL Server, non-ANSI pripojiť operátori nebudú podporované aj v spätnej kompatibility-módy. - -- how to set compatibility level in sql server 2005 ako nastaviť kompatibilitu na úrovni SQL Server 2005 - -- sql backward compatibility with 2008 sql spätná kompatibilita s 2008 - -- sql server compatibility levels sql servera kompatibilita úrovniach - -- PLEASE SET THE COMPATIBILITY LEVEL FOR CURRENT DATABASE TO 80 OR lower Prosím nastavte ZLUČITEĽNOSTI úrovni existujúcu databázu na 80 alebo menej - -- sql server 2008 2005 mode SQL Server 2008 2005 režim - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Zadanému používa non-ANSI vonkajšie pripojiť operátorov ("*=" alebo "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcu databázu na 80 alebo nižšie, pomocou uložené procedúry sp_dbcmptlevel. It is strongly recommended to rewrite the query Je dôrazne odporúčané, aby prepísať dotaz - -- please set the compatibility level for current database to 80 dovoľujeme si nastaviť úroveň kompatibility pre existujúcu databázu do 80 - -- compatibility level sqlserver kompatibilita úrovni sqlserver - -- sql server 2008 compatibility mode 80 SQL Server 2008 režime kompatibility 80 - -- sql server 2008 compatibility level SQL Server 2008 na úrovni kompatibility - -- compatibility level sql server 2008 kompatibilita na úrovni SQL Server 2008 - -- compatibility level kompatibilita na úrovni - -- SET COMPATIBILITY_LEVEL = 100 SET COMPATIBILITY_LEVEL = 100 - -- SQL server 7.0 compatibility SQL Server 7.0 kompatibilita - -- change sql server compatibility level zmene sql servera kompatibilita na úrovni - -- Setting database option COMPATIBILITY_LEVEL to 100 for database Nastavenie databázy COMPATIBILITY_LEVEL možnosť až 100 pre databázu - -- 2008 sql compatibility mode 2008 sql režime kompatibility - -- To run this query without modification, please set the compatibility level for current database to 80 Ak chcete spustiť tento dotaz bez akejkoľvek modifikácie, prosím, nastavenie kompatibility úrovni existujúcej databáze do 80 - -- check compatibility level in sql server 2008 skontrolujte kompatibilitu na úrovni SQL Server 2008 - -- sql serveer 2005 SET COMPATIBILITY_LEVEL sql serveer 2005 SET COMPATIBILITY_LEVEL - -- how to set ako nastaviť - --