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.
- 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; - 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;
- 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.
Related Articles Susiję straipsniai
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Pašalinti ar pašalinti keletą duomenų bazė pasisakymų Microsoft SQL Server 2005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft DreamSpack pasiūlymai Nemokama Parsisiųsti ir licencijos Visual Studio 2008, Server 2003, SQL Server 2005 ir daugiau
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE Optimizuokite SQL Server 2000, 2005 arba 2008 m. Didelės atminties sistemos Užrakinus Puslapiai Atmintis ir awe
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue Atsisiųsti naujinimas, skirtas Windows 7 ir Server 2008 R2 Beta (KB967062) nustatyti bendrus Application Compatibility numeris
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections Klaida Nors Nustatyti ryšį su SQL Server 2005 ", kuri neleidžia vietinio ir nuotolinio ryšio
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2005 R2 Atsisiųsti galima nemokamai
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Pabandykite sistemos suderinamumo Via Microsoft Application Compatibility Toolkit versija 5.5
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Atsisiųsti Nuorodos
- Internet Explorer (IE) Hang When Opening Virtual Server 2005 Web Administration Site Internet Explorer (IE) Hang Kai atidarymas Virtual Server 2005 Web administracijos Svetainės
- Change Oracle Database User Password Keisti Oracle Vartotojas Slaptažodis









































