How to Set Compatibility Level for SQL Server 2008 or 2005 Database How to Set Kompatibilitet Nivå för SQL Server 2008 eller 2005 Database
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: Vid val av uppgifter eller utföra sökningar på Microosft SQL Server 2008 eller SQL Server 2005 databas följande felmeddelande eller fel kan returneras:
[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, staten 1, Linje 4] Frågeprefixet använder icke-ANSI yttre gå aktörer ("*=" eller "=*"). 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. För att köra denna sökfråga utan ändringar kan du ställa in kompatibilitet för nuvarande databas till 80, med hjälp av SET COMPATIBILITY_LEVEL möjlighet att ändra databasen. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Det rekommenderas starkt att skriva om sökfrågan använder ANSI yttre ansluta operatörer (LEFT OUTER JOIN, HÖGER YTTRE BLI). In the future versions I framtida versioner
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. av SQL Server, icke-ANSI gå operatörerna inte kommer att stödjas även i bakåt-kompatibilitet lägen.
or, eller,
Msg 4147, Level 15, State 1, Line 3 Msg 4147, Level 15, staten 1, Linje 3
The query uses non-ANSI outer join operators (”*=” or “=*”). Frågeprefixet använder icke-ANSI yttre gå aktörer ("*=" eller "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. För att köra denna sökfråga utan ändringar kan du ställa in kompatibilitet för nuvarande databas till 80 eller lägre, med hjälp av lagrade förfarande sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Det rekommenderas starkt att skriva om sökfrågan använder ANSI yttre ansluta operatörer (LEFT OUTER JOIN, HÖGER YTTRE BLI). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. I framtida versioner av SQL Server, icke-ANSI gå operatörerna inte kommer att stödjas även i bakåt-kompatibilitet lägen.
The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Felet inträffar eftersom Microsoft har minskat stöd och elimineras gammaldags *= och =* yttre gå aktörer.
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. För att fastställa SQL Server error ovan BF administratören har att ställa databasen kompatibilitet nivå 80, som likvärdiga med SQL Server 2000 som en tillfällig lösning. 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. Naturligtvis är den bästa lösningen är att ändra SQL uttalanden eller frågor kod för att ta bort gamla ansluta operatörer med nuvarande standard SQL gå syntax.
For example, SQL query below is not valid: Exempelvis SQL query nedan inte är giltig:
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: Och bör ersättas med följande 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: Eller följande förkortad inner ansluta uttalande:
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. För utvecklare som inte kan ändra koden, är den enklaste lösningen är att återgå förenlighet nivå av databasen så att den ger bakåtkompabilitet med gamla fogar. 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 lagrade procedurer (deprecated) eller Transact-SQL kan användas för att ställa vissa (delvis, inte alla) databas beteenden är förenlig med den tidigare versionen av SQL Server. This Den här MSDN article MSDN artikeln provides overview on what behaviors are changed on each compatibility level. ger överblick över vad beteenden ändras på varje kompatibilitet nivå.
Version of SQL Server that can be reverted to can be one of the following: Version av SQL Server som kan åter kan bli en av de följande:
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. Obs! Kompatibilitet nivå 60, 65 och 70 inte längre finns i SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. Och framtida version av SQL Server kommer att stödja endast två (2) tidigare version av bakåtkompatibilitet. A database containing an indexed view cannot be changed to a compatibility level lower than 80. En databas som innehåller en indexerad syfte inte kan ändras till en kompatibilitet lägre än 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. Vill också notera att när en databas är inställt på bakåt-kompatibilitet läge, några av de nya funktioner som kan gå förlorade, såsom SQL CLR och SSMS scheman för databasen. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Bredvid, den kompatibilitetsläge påverkar beteenden endast för den angivna databasen, inte för hela servern.
Steps to Change and Set Compatibility Level of A Database in SQL Server Steg för att ändra och Set Kompatibilitet Grad av en databas i SQL Server
The following SQL commands can be issued in SQL Server Management Studio Query window. Följande SQL-kommandon kan utfärdas i SQL Server Management Studio Query fönstret. Remember to execute Go after each command. Kom ihåg att verkställa Gå efter varje kommando.
- Optional: Set the database to single user access mode: Valfritt: Ange databas till samma användare tillgång läge:
ALTER DATABASE database_name SET SINGLE_USER; - Set the database compatibility level to one of the earlier version stated above: Ställ databasen kompatibilitet nivå för att ett av den tidigare versionen som anges ovan:
Transact-SQL Method Transact-SQL Metod
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }For example, Till exempel
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 Metod
EXEC sp_dbcmptlevel database_name, compatibility_level value;For example, Till exempel
EXEC sp_dbcmptlevel my_db, 90; EXEC sp_dbcmptlevel my_db, 90;
- Optional: Put back the database in multiuser access mode: Valfritt: Lägg tillbaka databasen i flera tillgång läge:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT : The page is machine translated and provided "as is" without warranty. VIKTIGT: Sidan maskin översatt och levereras "som är" utan garanti. Machine translation may be difficult to understand. Maskinöversättning kan vara svårt att förstå. Please refer to Se original English article ursprungliga engelska artikeln whenever possible. när det är möjligt.
Related Articles Relaterade artiklar
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Avinstallera och ta bort flera Database instanser av Microsoft SQL Server 2005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft DreamSpack erbjuder gratis hämtning och licens för Visual Studio 2008, Server 2003, SQL Server 2005 och mer
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE Optimera SQL Server 2000, 2005 eller 2008 i Stor RAM System av Låsa sidor i minnet och AWE
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue Ladda ner uppdateringen för Windows 7 och Server 2008 R2 Beta (KB967062) fastställa gemensamma Application Compatibility Utgåva
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections Fel har uppstått Medan Etablera en anslutning till SQL Server 2005 som inte tillåter lokala och fjärranslutningar
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2005 R2 Ladda ner gratis
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Kontrollera datorns kompatibilitet Via Microsoft New Application Compatibility Toolkit Version 5.5
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direktnedladdning Länkar
- Internet Explorer (IE) Hang When Opening Virtual Server 2005 Web Administration Site Internet Explorer (IE) Hang När Öppet Virtual Server 2005 Web Administration Site
- Change Oracle Database User Password Ändra Oracle Database Användarnamn Lösenord









































