How to Set Compatibility Level for SQL Server 2008 or 2005 Database Kaip nustatyti suderinamumo lygio SQL Server 2008 arba 2005 m. duomenų bazę

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: Renkant duomenis arba atlikti užklausą Microosft SQL Server 2008 arba SQL Server 2005 duomenų bazę, galite gauti tokį klaidos pranešimą arba gedimo gali būti grąžintas:

[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, Level 15, State 1, Line 4] užklausą naudoja ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). 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. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės iki 80, naudojant SET COMPATIBILITY_LEVEL galimybę ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). In the future versions Vėliau versijos
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. SQL Server, ne ANSI prisijungti operatoriai negali būti remiami net atgal suderinamumą rūšių.


or, arba,

Msg 4147, Level 15, State 1, Line 3 Msg 4147, Level 15, State 1, 3 eilutė
The query uses non-ANSI outer join operators (”*=” or “=*”). Užklausa naudoja ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis, naudojant procedūrą sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Vėliau versijos SQL Server, ne ANSI prisijungti operatoriai negali būti remiami net atgal suderinamumą rūšių.

The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Klaidos atsitinka, nes "Microsoft" sumažėjo parama ir pašalinti senosios *= ir =* išorinėje prisijungti operatorių.

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. Siekiant nustatyti SQL Server klaidos pirmiau, BP administratorius turi nustatyti duomenų bazės suderinamumo lygį iki 80, kurie lygiaverčiai su SQL Server 2000 kaip laikinai apeiti. 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. Žinoma, geriausias sprendimas būtų pakeisti SQL arba užklausų kodas pašalinti senosios prisijungti operatorių dabartinę standartinę SQL prisijungti sintaksė.

For example, SQL query below is not valid: Pavyzdžiui, SQL užklausa toliau negalioja:

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: Ir turėtų būti pakeisti šį kodą:

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: Arba taip sutrumpintai vidinį prisijungti pareiškimas:

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. Dėl administratorius, kurie negali pakeisti kodą, lengviausias problemos yra grįžti, suderinamumo lygio duomenų bazės, siekiant užtikrinti atgalinį suderinamumą su seno tipo prisijungęs. 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 saugomas procedūras (deprecated) arba Transact-SQL gali būti naudojamas, norint nustatyti tam tikri (iš dalies, ne visi) duomenų bazėje elgesio turi būti suderinama su ankstesne versija SQL Server. This Šitas MSDN article MSDN straipsnis provides overview on what behaviors are changed on each compatibility level. teikia ataskaitą apie tai, kas yra elgesio modelis kiekvienoje suderinamumo lygis.

Version of SQL Server that can be reverted to can be one of the following: Versija SQL Server, kuri gali būti atstatyta, gali būti vienas iš šių įrašų:

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. Pastaba: suderinamumo lygis 60, 65 ir 70 nebeprieinamas SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. Ir ateityje versija SQL Server rems tik dvi (2) išankstinio versija atgalinis suderinamumas. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Duomenų bazėje, kuriame yra indeksuojami vaizdas negali būti pakeistas į suderinamumo lygis mažesnis nei 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. Ar taip pat atkreipia dėmesį, kad jei duomenų bazė yra nustatyta praeities suderinamumo režimu, kai kurių naujų funkcijų gali būti prarasti, tokią kaip SQL CLR paramą ir SSMS diagramos duomenų bazėje. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Šalia, suderinamumo režimu veikia elgesį tik nurodytą duomenų bazės, o ne už visą serverį.

Steps to Change and Set Compatibility Level of A Database in SQL Server Veiksmai pakeisti ir nustatyti suderinamumo lygis A duomenų bazė SQL Server

The following SQL commands can be issued in SQL Server Management Studio Query window. Taip SQL komandas gali būti išduodami SQL Server Management Studio užklausos lange. Remember to execute Go after each command. Prisiminti vykdyti Eiti po kiekvienos komandos.

  1. Optional: Set the database to single user access mode: Papildomai: Sukurti duomenų bazę ir vieną vartotojo prieigą būdas:

    ALTER DATABASE database_name SET SINGLE_USER;

  2. Set the database compatibility level to one of the earlier version stated above: Nustatyti duomenų bazę suderinamumo lygį, kad viena iš ankstesnės versijos nurodyta pirmiau:

    Transact-SQL Method Transact-SQL metodas

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

    For example, Pavyzdžiui,

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

    sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel Stored Procedure metodas

    EXEC sp_dbcmptlevel database_name, compatibility_level value;

    For example, Pavyzdžiui,

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

  3. Optional: Put back the database in multiuser access mode: Neprivaloma: Padėk atgal duomenų bazę Multiplayer prieigos būdas:

    ALTER DATABASE database_name SET MULTI_USER;

IMPORTANT : The page is machine translated and provided "as is" without warranty. DĖMESIO: Šis puslapis yra mašina išvertė ir pateikiama "kaip yra" be garantijų. Machine translation may be difficult to understand. Mašininio vertimo, gali būti sunku suprasti. Please refer to Remkitės original English article originalas anglų straipsnis whenever possible. jei įmanoma.


Leave a Reply Leave a Reply

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> Galite naudoti šias žymeles: <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. Subscribe to comments funkcija buvo išjungta. To receive notification of latest comments posted, subscribe to Norėdami gauti pranešimus apie naujausius komentarų, užsiprenumeruoti My Digital Life Comments RSS feed Mano skaitmeninis gyvenimas Komentarų RSS or arba register to receive registruotis, norint gauti new comments in daily email digest. Nauji komentarai kasdien elektroniniu paštu.
Custom Search

New Articles Nauji straipsniai

Incoming Search Terms for the Article Pradedantys Paieška Sąlygos straipsnį

The query uses non-ANSI outer join operators ("*=" or "=*"). Užklausa naudoja ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis, naudojant procedūrą sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Vėliau versijos SQL Server, ne ANSI prisijungti operatoriai negali būti remiami net atgal suderinamumą rūšių. - -- sql server compatibility level SQL Server suderinamumo lygio - -- sql 2005 compatibility mode sql 2005 suderinamumo režimu - -- sql server 2008 compatibility mode SQL Server 2008 suderinamumo režimu - -- sql server compatibility levels SQL Server suderinamumo lygis - -- sql compatibility mode sql suderinamumo režimu - -- check compatibility level in sql server 2008 patikrinti suderinamumo lygio SQL Server 2008 - -- compatibility level sql server suderinamumo lygio SQL Server - -- sql serveer 2005 SET COMPATIBILITY_LEVEL sql serveer 2005 SET COMPATIBILITY_LEVEL - -- database compatibility mode is set to 90 Duomenų bazės suderinamumo režimas yra nustatytas 90 - -- how to set kaip nustatyti - -- sql 2005 compatibility level sql 2005 suderinamumo lygio - -- MS SQL 2008 server to run SQL 2005 database compatibility mode MS SQL 2008 serverio paleisti SQL 2005 duomenų bazių suderinamumo režimu - -- SET COMPATIBILITY_LEVEL SET COMPATIBILITY_LEVEL - -- SQLSERVER compatibility level SQLServer suderinamumo lygis - -- SQL compatibility level SQL suderinamumo lygis - -- how to set compatibility level 80 of sql server 2005 kaip nustatyti suderinamumo lygį 80 SQL Server 2005 - -- sql 2000 2005 select compatibility sql 2000 2005 pasirinkite suderinamumo - -- sql 2008 compatibility level sql 2008 suderinamumo lygio - -- please set the compatibility level for current database to 80,using the set compatibility_level option of alter database. prašome suderinamumo lygį dabartinės duomenų bazės iki 80, naudojant nustatytą compatibility_level galimybę keisti duomenų bazę. - -- set sql server 2008 to 80 nustatyti SQL Server 2008 80 - -- sql server 2008 compatibility SQL Server 2008 suderinamumas - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Užklausa naudoja ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). 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. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės iki 80, naudojant SET COMPATIBILITY_LEVEL galimybę ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Vėliau versijos SQL Server, ne ANSI prisijungti operatoriai negali būti remiami net atgal suderinamumą rūšių. - -- non-ANSI outer join operators ("*=" or "=*"). ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis - -- changing compatibility level in sql 2008 from 2000 kintančias suderinamumo lygis sql 2008 iš 2000 - -- please set the compatibility level for current database to 80 prašome suderinamumo lygį dabartinės duomenų bazės 80 - -- setting sql compatibility nustatant sql suderinamumas - -- set compatibility_level option of alter database nustatyti compatibility_level galimybė keisti duomenų bazės - -- set compatibility level using sp_dbcmptlevel nustatyti suderinamumo lygio naudojant sp_dbcmptlevel - -- non-ansi outer join operators and database compatibility ne-ansi išorinėje prisijungti operatorių ir duomenų bazių suderinamumas - -- set compatibility to 80 on sql server 2008 nustatyti suderinamumą su 80 SQL Server 2008 - -- sql 2008 6.5 compatibility mode sql 2008 6,5 suderinamumo režimu - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Užklausa naudoja ne ANSI išorinėje prisijungti operatorių ("*=" ar "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis, naudojant procedūrą sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). - -- compatibility level sqlserver suderinamumo lygio erver - -- cpmpatibility level sql 2005 lower 80 cpmpatibility lygio sql 2005 mažesnes 80 - -- microsoft sql 2005 backward compatibility download Microsoft SQL 2005 atgalinis suderinamumas atsisiųsti - -- SQL Server 2008 + IE 6 compatibility SQL Server 2008 + IE 6 suderinamumo - -- the query uses non-ansi outer join operators. užklausos naudoja ne-ansi išorinėje prisijungti operatorių. compatibility level for current database to 80 or lower suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis - -- sql server 2005 versus 2008 SQL Server 2005, palyginti su 2008 - -- To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Norėdami atlikti šį prašymą be pakeitimų, prašome suderinamumo lygį dabartinės duomenų bazės į 80 arba mažesnis, naudojant procedūrą sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ji primygtinai rekomenduojama perrašyti užklausą naudojant ANSI išorinėje prisijungti operatoriai (KAIRĖN IŠORINĖS PRISIJUNK, TEISĖ IŠORINĖS PRISIJUNK). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Vėliau versijos SQL Server, ne ANSI prisijungti operatoriai negali būti remiami net atgal suderinamumą rūšių. - -- "sql server 2008" compatibility transact sql "SQL Server 2008" suderinamumo Transact SQL - -- SQL Server 2008 database in compatibility mode 90 SQL Server 2008 duomenų bazių suderinamumo režimu 90 - -- compatibility setting for SQL SERVER 2008 suderinamumo nustatymas SQL Server 2008 - -- compatibility mode is set to 90. Suderinamumo režimas yra nustatytas iki 90. JOIN USING PRISIJUNK naudojant - -- how to set sql 2005 compatibility mode kaip nustatyti sql 2005 suderinamumo režimu - -- level sql server lygio SQL Server - -- Running 2008 SQL Server Databases in 2005 mode Veikia 2008 SQL Server duomenų bazės 2005 m. būdas - -- set sql server multi user mode nustatyti SQL Server daug vartotojų būdas - -- sql 2005 set sql 2005 rinkinys - -- sql server ansi compatibility SQL Server ansi suderinamumo - --