How to Set Compatibility Level for SQL Server 2008 or 2005 Database Як встановити рівень сумісності для SQL Server 2008 або 2005 році база даних
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: При виборі даних або виконання запитів на Microosft SQL Server 2008 або SQL Server 2005 бази даних, таке повідомлення про помилку або невдача можуть бути повернуті:
[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, рівень 15, State 1, Line 4], не використовує запитів ANSI-космічному об'єднати операторів ("*=" або "=*"). 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. Щоб запустити цей запит без змін, будь ласка, налаштувати рівень сумісності для поточної бази даних до 80, використовуючи SET COMPATIBILITY_LEVEL варіант ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Він настійно рекомендував переписувати запити з використанням ANSI космічному об'єднати операторів (КОСМІЧНОГО ПРИСОЕДИНЯЙСЯ LEFT, RIGHT КОСМІЧНОГО ПРИСОЕДИНЯЙСЯ). In the future versions У майбутніх версіях
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. в SQL Server, не вступати в ANSI оператори не будуть отримувати підтримку навіть у зворотній сумісності режимів.
or, або,
Msg 4147, Level 15, State 1, Line 3 Msg 4147, рівень 15, State 1, Line 3
The query uses non-ANSI outer join operators (”*=” or “=*”). За запитом, не використовується ANSI-космічному об'єднати операторів ("*=" або "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Щоб запустити цей запит без змін, будь ласка, налаштувати рівень сумісності для поточної бази даних 80 або менше, за допомогою збереженої процедури sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Він настійно рекомендував переписувати запити з використанням ANSI космічному об'єднати операторів (КОСМІЧНОГО ПРИСОЕДИНЯЙСЯ LEFT, RIGHT КОСМІЧНОГО ПРИСОЕДИНЯЙСЯ). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. В майбутньої версії SQL Server, не вступати в ANSI оператори не будуть отримувати підтримку навіть у зворотній сумісності режимів.
The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Ця помилка відбувається тому, що Microsoft знизилася підтримка та усунути старого стилю *= і =* космічного об'єднати операторів.
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. Для того щоб виправити помилку SQL Server вище, DB адміністратор повинен встановити базу даних сумісності на рівні 80, який еквівалента з SQL Server 2000 в якості тимчасової обхідний. 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. Звичайно, найкращим вирішенням цієї проблеми є зміна SQL запитів, заяв або код для видалення старого стилю вступити з діючим операторам стандарту SQL приєднатися синтаксису.
For example, SQL query below is not valid: Наприклад, SQL запитів нижче не діє:
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: І повинен бути замінений на наступний код:
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: Або такі скорочені внутрішні приєднатися заяву:
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. Для адміністратора, який не може змінити код, найпростіший обходу полягає в тому, щоб повернутися на рівень сумісності бази даних з метою забезпечення зворотного сумісності старого стилю приєднується. 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 збережених процедур (не рекомендується) або Transact-SQL може використовуватися для встановлення певних (частково, не всіх) даних поведінки для забезпечення сумісності з більш ранньої версії SQL Server. This Цей MSDN article MSDN статтю provides overview on what behaviors are changed on each compatibility level. дає огляд про те, що поведінка змінюється на кожному рівні сумісності.
Version of SQL Server that can be reverted to can be one of the following: Версії SQL Server, які можуть бути повернені тим, може бути один із наступних варіантів:
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. Примітка: сумісність рівні 60, 65 та 70 більше не доступні в SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. І майбутньої версії SQL Server буде підтримувати тільки два (2) до версії зворотної сумісності. A database containing an indexed view cannot be changed to a compatibility level lower than 80. База даних, що містить індексованої думку не може бути змінений на сумісність рівні нижче 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. Як також взяти до уваги, що, коли база даних встановлюється на зворотній сумісності режимі, деякі нові функціональні можливості можуть бути втрачені, як, наприклад, SQL і CLR підтримки ВСР діаграм для бази даних. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Крім того, в режимі сумісності впливає на поведінку тільки для зазначених баз даних, а не для всього сервера.
Steps to Change and Set Compatibility Level of A Database in SQL Server Кроки по зміні та встановити рівень сумісності бази даних в SQL Server
The following SQL commands can be issued in SQL Server Management Studio Query window. Наступні SQL команди можуть бути опубліковані в SQL Server Management Studio Запит вікно. Remember to execute Go after each command. Не забудьте виконати Перехід після кожної команди.
- Optional: Set the database to single user access mode: Додатково: Встановлення бази даних для одного користувача в режимі доступу:
ALTER DATABASE database_name SET SINGLE_USER; - Set the database compatibility level to one of the earlier version stated above: Встановити рівень сумісності баз даних на одному з ранніх версій зазначених вище:
Transact-SQL Method Transact-SQL Метод
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }For example, Наприклад,
ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 My_db ALTER DATABASE SET COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel збереженої процедури Метод
EXEC sp_dbcmptlevel database_name, compatibility_level value;For example, Наприклад,
EXEC sp_dbcmptlevel my_db, 90; EXEC sp_dbcmptlevel my_db, 90;
- Optional: Put back the database in multiuser access mode: Додатково: повернути базу даних у многопользовательском режимі доступу:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT : The page is machine translated and provided "as is" without warranty. ВАЖЛИВО: Сторінка машина переведена і надаються "як є" без гарантії. Machine translation may be difficult to understand. Машинний переклад може бути важким для розуміння. Please refer to Будь ласка, зверніться до original English article Англійська оригінальні статті whenever possible. коли це можливо.
Related Articles Статті по темі
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Видаліть і видалення Кілька екземплярів баз даних Microsoft SQL Server 2005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft DreamSpack Пропозиції Free Download і ліцензія Visual Studio 2008, Server 2003, SQL Server 2005 і більше
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE Оптимізація SQL Server 2000, 2005 або 2008 році у Великому ОЗУ системи шляхом блокування сторінок в пам'яті й AWE
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue Завантажити оновлення для 7 і Windows Server 2008 R2 Beta (KB967062) виправити Загальні сумісності додатків випуск
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections Помилка сталася Хоча Встановлення з'єднання з SQL Server 2005, яка не дозволяє місцевих і віддалених з'єднань
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2005 R2 Скачати безкоштовно
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Перевірка сумісності системи Microsoft Віа Нова сумісності додатків Toolkit версії 5.5
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Пряма Завантажити Посилання
- Internet Explorer (IE) Hang When Opening Virtual Server 2005 Web Administration Site Internet Explorer (IE) вішайте При відкритті Virtual Server 2005 Web Адміністрація сайту
- Change Oracle Database User Password Зміна бази даних Oracle користувача Пароль









































