How to Set Compatibility Level for SQL Server 2008 or 2005 Database Jak ustawić poziom kompatybilności dla SQL Server 2008 lub 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: Przy wyborze danych lub wykonywania zapytań na Microosft SQL Server 2008 lub SQL Server 2005 baza danych, następujący komunikat o błędzie lub awarii mogą być zwracane:
[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] [Sterownik ODBC programu SQL Server] [SQL Server] [Msg 4147, Level 15, State 1, Line 4] zapytanie nie korzysta z zewnętrznego ANSI dołączyć operatorów ("*=" lub "=*"). 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. Aby uruchomić tę kwerendę bez zmian, należy ustawić poziom kompatybilności dla bieżącej bazy danych do 80, korzystając z opcji SET COMPATIBILITY_LEVEL ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Zaleca się przepisać zapytanie używając zewnętrznej ANSI dołączyć podmiotów (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions W przyszłych wersjach
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. SQL Server, nie ANSI dołączyć operatorzy nie będą obsługiwane nawet w trybach kompatybilności wstecz.
or, lub,
Msg 4147, Level 15, State 1, Line 3 Msg 4147, Level 15, State 1, wiersz 3
The query uses non-ANSI outer join operators (”*=” or “=*”). Zapytanie zastosowań nie ANSI dołączyć zewnętrzne podmioty ("*=" lub "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Aby uruchomić tę kwerendę bez zmian, należy ustawić poziom kompatybilności dla bieżącej bazy danych do 80 lub mniej, przy użyciu procedury przechowywanej sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Zaleca się przepisać zapytanie używając zewnętrznej ANSI dołączyć podmiotów (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. W przyszłych wersjach SQL Server, nie ANSI dołączyć operatorzy nie będą obsługiwane nawet w trybach kompatybilności wstecz.
The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Ten błąd dzieje się ponieważ Microsoft zmniejszył wsparcie i wyeliminować stare i *= =* zewnętrznej dołączyć operatorów.
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. W celu ustalenia programu SQL Server błąd powyżej, DB administrator bazy danych, aby ustawić zgodność na poziomie do 80, których równoważna z SQL Server 2000 jako tymczasowe obejście. 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. Oczywiście, najlepszym rozwiązaniem jest zmiana lub zapytań SQL kod, aby usunąć stare dołączyć operatorów o aktualnej standardowej składni SQL dołączyć.
For example, SQL query below is not valid: Na przykład zapytanie SQL poniżej nie jest ważne:
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: I powinien zostać zastąpiony przez następujący 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: Lub skrócona wewnętrznej dołączyć następujące oświadczenie:
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. Dla administratora, który nie może zmienić kod, najprostszym rozwiązaniem zastępczym jest przywrócić zgodność poziomu bazy danych w celu zapewnienia kompatybilności wstecznej do stare przyłącza. 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 procedur przechowywanych (deprecated) lub Transact-SQL może być użyta do ustawienia pewnych (częściowo, nie wszystkie) bazy danych zachowań, które mają być zgodne z wcześniejszą wersją programu SQL Server. This To MSDN article MSDN artykuł provides overview on what behaviors are changed on each compatibility level. przewiduje przegląd tego, co jest zmiana zachowań na każdym poziomie zgodności.
Version of SQL Server that can be reverted to can be one of the following: Wersja SQL Server, które mogą być przywrócone, mógł być jedną z następujących czynności:
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. Uwaga: Zgodność poziomu 60, 65 i 70 nie są już dostępne w SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. I przyszłej wersji SQL Server będzie wspierać tylko dwóch (2) przed wersję kompatybilności wstecznej. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Baza danych zawierających zindeksowanej widzenia nie mogą być zmieniane na poziomie niższym niż zgodność 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. Czy również wziąć pod uwagę, że gdy baza danych jest ustawiony na tryb wstecznej zgodności, pewne nowe funkcje mogą zostać utracone, takich jak SQL CLR wsparcia SSMS i diagramy do bazy danych. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Obok, w trybie zgodności zachowań wpływa tylko dla określonej bazy danych, a nie dla całego serwera.
Steps to Change and Set Compatibility Level of A Database in SQL Server Kroki prowadzące do zmian i Ustaw Zgodność Poziom bazy danych SQL Server
The following SQL commands can be issued in SQL Server Management Studio Query window. Następujące polecenia SQL mogą być emitowane w programie SQL Server Management Studio Zapytanie okna. Remember to execute Go after each command. Pamiętaj, aby wykonywać Idź po każdym poleceniu.
- Optional: Set the database to single user access mode: Opcjonalnie: Zestaw do bazy danych w trybie pojedynczego użytkownika dostępu:
ALTER DATABASE database_name SET SINGLE_USER; - Set the database compatibility level to one of the earlier version stated above: Ustaw poziom zgodności baz danych do jednej z wcześniejszych wersji stwierdzono powyżej:
Transact-SQL Method Transact-SQL Metoda
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }For example, Na przykład,
ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel procedury przechowywanej Metoda
EXEC sp_dbcmptlevel database_name, compatibility_level value;For example, Na przykład,
EXEC sp_dbcmptlevel my_db, 90; EXEC sp_dbcmptlevel my_db, 90;
- Optional: Put back the database in multiuser access mode: Opcjonalnie: Put powrót do bazy danych w trybie multiuser dostępu:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT : The page is machine translated and provided "as is" without warranty. UWAGA: Strona jest maszyna przetłumaczony i dostarczane "tak jak są" bez gwarancji. Machine translation may be difficult to understand. Tłumaczenie maszynowe może być trudne do zrozumienia. Please refer to Proszę odnieść się do original English article oryginalny angielski artykułu whenever possible. ilekroć jest to możliwe.
Related Articles Pokrewne artykuły
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Odinstaluj i usuń wiele instancji bazy danych Microsoft SQL Server 2005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft oferuje bezpłatne DreamSpack Download i licencja programu Visual Studio 2008, Server 2003, SQL Server 2005 i więcej
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE Optymalizacja SQL Server 2000, 2005 lub 2008 w Duże RAM Systemu Blokowanie stron w pamięci i AWE
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue Pobierz aktualizację dla systemu Windows 7 oraz Server 2008 R2 w wersji Beta (KB967062) Aby rozwiązać wspólne Application Compatibility Nakład
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections Wystąpił błąd przy równoczesnym ustanowieniu połączenia z SQL Server 2005, które nie pozwalają na lokalne i zdalne połączenie
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2005 R2 Pobierz dostępne bezpłatnie
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Sprawdzanie zgodności systemu Via Microsoft Application Compatibility Toolkit Nowa wersja 5.5
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2005 R2 z dodatkiem SP1 (Enterprise Edition) Direct Download Linki
- Internet Explorer (IE) Hang When Opening Virtual Server 2005 Web Administration Site Internet Explorer (IE) Hang Podczas otwarcia Virtual Server 2005 Web Site Administration
- Change Oracle Database User Password Zmień Oracle Database Użytkownik Hasło









































