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.

  1. 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;

  2. 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;

  3. 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.


Leave a Reply Lov en Svara

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> Du kan använda dessa taggar: <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. Prenumerera på kommentarer funktionen har inaktiverats. To receive notification of latest comments posted, subscribe to Ta emot anmälan av senaste kommentarer inlagda och erhåll My Digital Life Comments RSS feed Min Digital Liv Kommentarer RSS-flöde or eller register to receive register för att få new comments in daily email digest. nya kommentarer i den dagliga e-postutskick.
Custom Search

New Articles Nya artiklar

Incoming Search Terms for the Article Inkommande söktermer för artikel

sql server compatibility level SQL Server kompatibilitet nivå - -- sql server 2008 compatibility mode SQL Server 2008 kompatibilitetsläge - -- How do I set SQL 2005 compatibility in sQL Server 2008? Hur ställer jag in SQL 2005 kompatibilitet i SQL Server 2008? - -- setting sql server compatibility mode inställning SQL Server kompatibilitetsläge - -- HOW TO SET compatiblity level for the db HOW TO SET kompatibilitet nivå för db - -- set sql server 2008 to run like 2005 uppsättning SQL Server 2008 för att köra likadana 2005 - -- sql 2005 outer join sql 2005 yttre gå - -- sql server 2005 compatibility mode option SQL Server 2005 kompatibilitetsläge alternativ - -- SQL Server 2008 2005 compatibility mode SQL Server 2008 2005 kompatibilitetsläge - -- SQL Server compatibility mode SQL Server kompatibilitetsläge - -- sql compatibility 90 sql kompatibilitet 90 - -- How to change SQL Compatibility Mode to 90 Hur man ändra SQL kompatibilitetsläget till 90 - -- SQL compatibility mode SQL kompatibilitetsläge - -- sql compatibility level sql kompatibilitet nivå - -- sql server set compatibility level SQL Server ställa kompatibilitet nivå - -- SET COMPATIBILITY_LEVEL = SET COMPATIBILITY_LEVEL = - -- SET COMPATIBILITY_LEVEL SET COMPATIBILITY_LEVEL - -- sql db compatibility sql db kompatibilitet - -- "sql server 2000 mode" "SQL Server 2000-mode" - -- check sql server compatibility level kontrollera SQL Server kompatibilitet nivå - -- compatibility level sql kompatibilitet nivå sql - sql 2008 compatibility level sql 2008 kompatibilitet nivå - -- SQL Server Management Studio 6.5 Compatible SQL Server Management Studio 6.5 Kompatibla - -- check sql server database compatability kontrollera SQL Server-databas kompatibilitet - -- how to set compatibility level of a database in a sql server 2005 hur man ställer kompatibilitet nivå av en databas i SQL Server 2005 - -- setting database comaptibility in sql server inställning databas comaptibility i SQL Server - -- how to get current database compatibility level hur man får aktuell databas kompatibilitet nivå - -- level SQL nivå SQL - -- sql server 2008 visual studio 2005 compatibility SQL Server 2008 Visual Studio 2005 kompatibilitet - -- sql server 2008 2005 compatibility SQL Server 2008 2005 kompatibilitet - -- "windows 7" "sql server management studio" compatible "Windows 7" "SQL Server Management Studio" kompatibel - -- "The query uses non-ANSI outer join operators ("*=" or "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (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." "Frågeprefixet använder icke-ANSI yttre gå aktörer ("*=" eller "=*"). 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. Det är starkt rekommenderas att skriva om sökfrågan använder ANSI yttre ansluta operatörer (LEFT OUTER JOIN, HÖGER YTTRE BLI). I framtida versioner av SQL Server, icke-ANSI ansluta operatörer inte kommer att stödjas även i bakåt-kompatibilitet lägen. " - -- change sql server 2005 administrator ändra SQL Server 2005 administratör - -- change compatibility level from sql 2000 to 2005 ändra kompatibilitetsläget nivå från SQL 2000 till 2005 - -- change compatibility level sql 2000 db to 2005 ändra kompatibilitetsläget nivå sql 2000 db till 2005 - -- compatibility sql kompatibilitet sql - -- compatibility level 80 sql server 2000 kompatibilitet nivå 80 SQL Server 2000 - -- compatibility of sql server 2005 with sql server 2008 förenlighet med SQL Server 2005 med SQL Server 2008 - -- db compatibility level of sql db kompatibilitet nivå sql - -- outer join sql server ansi yttre gå med SQL Server ANSI - -- server 2008 disable unblock "compatibility issue" server 2008 inaktivera avblockera "kompatibilitet frågan" - -- set compatibility for sql to 80 ställa kompatibilitet för SQL till 80 - -- set SQL compatibility level back uppsättning SQL kompatibilitet nivå tillbaka - -- Setting database option COMPATIBILITY_LEVEL to 100 Ställa databas alternativ COMPATIBILITY_LEVEL till 100 - -- SET COMPATIBILITY LEVEL of database 2008 SET KOMPATIBILITET LEVEL av databasen 2008 - -- set compatible sql server 2008 uppsättning kompatibla SQL Server 2008 - -- SQL 2008 compatibility.mode 2005 SQL 2008 compatibility.mode 2005 - -- SQL 2008 and SQL 2005 compatibility SQL 2008 och SQL 2005 kompatibilitet - -- sql server 2008 database compatibility level SQL Server 2008 databas kompatibilitet nivå - -- sql 2008 compatibility mode number is 100 sql 2008 kompatibilitetsläge nummer 100 - --