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. Не забудьте виконати Перехід після кожної команди.

  1. Optional: Set the database to single user access mode: Додатково: Встановлення бази даних для одного користувача в режимі доступу:

    ALTER DATABASE database_name SET SINGLE_USER;

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

  3. 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. коли це можливо.


Leave a Reply Залишити Відповісти

Ім'я

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> Ви можете використовувати ці теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <дель Datetime = ""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. Підписатися на коментарі функція була відключена. To receive notification of latest comments posted, subscribe to Щоб отримувати повідомлення про останніх коментарів, підписка на My Digital Life Comments RSS feed Моя Цифрова життя Коментарі RSS канал or або register to receive зареєструватися, щоб отримати new comments in daily email digest. нових коментарів у щоденній електронній пошті дайджест.
Custom Search

New Articles Нові статті

Incoming Search Terms for the Article Вхідний Умови пошуку для статті

SQLSERVER compatibility level SQLServer рівень сумісності - -- sql server compatibility levels SQL Server рівень сумісності - -- how to set compatibility level 80 of sql server 2005 Як настроїти рівень сумісності 80 SQL Server 2005 - -- sql 2000 2005 select compatibility SQL 2000 2005 виберіть сумісності - -- "sql server 2008" compatibility transact sql "SQL Server 2008" сумісність угоди SQL - -- SQL Server 2008 database in compatibility mode 90 SQL Server 2008 бази даних в режимі сумісності 90 - -- compatibility setting for SQL SERVER 2008 сумісність налаштування для SQL Server 2008 - -- compatibility mode is set to 90. сумісність режим 90. JOIN USING ПРИСОЕДИНЯЙСЯ ВИКОРИСТОВУЮЧИ - -- how to set sql 2005 compatibility mode Як налаштувати SQL 2005 в режимі сумісності - -- level sql server рівні SQL-сервера - -- Running 2008 SQL Server Databases in 2005 mode Запуск 2008 SQL Server 2005 бази даних в режимі - -- SET COMPATIBILITY_LEVEL SET COMPATIBILITY_LEVEL - -- set sql server multi user mode встановити SQL Server в режимі декількох користувачів - -- sql 2005 set SQL 2005 набір - -- sql server ansi compatibility ANSI SQL Server сумісності - -- sql set compatibility mode SQL встановити режим сумісності - -- SQL compatibility level SQL рівень сумісності - -- sql server 2005 + windows 2008 server + compatibility SQL Server 2005 + Windows 2008 Server + сумісність - -- sql 2008 compatibility mode 2005 SQL 2008 в режимі сумісності 2005 - -- sql server 2008 compatibility mode SQL Server 2008 в режимі сумісності - -- windows server 2008 + vs 2005 + compatibility Windows Server 2008 + VS 2005 + сумісність - -- "Setting database option COMPATIBILITY_LEVEL to 100" "Настроювання бази даних варіантом COMPATIBILITY_LEVEL 100" - -- 2005 SQL to 2008 SQL database compatibility 2005 на SQL 2008 SQL бази даних сумісності - -- change compatibility mode is set to 90. зміна сумісності режим 90. - -- compatibility level sql 2005 сумісність рівні SQL 2005 - -- Compatibility mode of SQL database Сумісність режиму SQL бази даних - -- how to set the compatibility level 80 to sql server Як настроїти рівень сумісності 80 до SQL Server - -- microsoft sql 2005 compatibility with server 2008 Microsoft SQL 2005 сумісність з Server 2008 - -- ms sql server + compatibility level 80 or 90 MS SQL Server + сумісність рівні 80 або 90 - -- ms sql 2008 database backward compatibility MS SQL 2008 базі забезпечення сумісності - -- mssql set compability level MSSQL встановити рівень compability - -- non-ansi join sql server 2008 Витрати, ANSI приєднатися SQL Server 2008 - -- PLEASE SET THE COMPATIBILITY LEVEL FOR CURRENT DATABASE TO 80 OR lower PLEASE встановити СУМІСНОСТІ рівень поточної базі даних 80 або нижче - -- query to check sql compatibility level запитів SQL для перевірки відповідності рівня - -- 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 Він настійно рекомендував переписати запит - -- Running SQL Server 2008 in compatibility mode Запуск SQL Server 2008 в режимі сумісності - -- set Compatibility level SQL Database встановити рівень сумісності баз даних SQL - -- set sql compatibility mode встановити режим сумісності SQL - -- sql server + stored procedure compatibility level SQL Server + збереженої процедури відповідності рівня - -- sql 2008 compatibility level SQL 2008 сумісність рівні - -- sql compatibility mode SQL режимі сумісності - -- sql 2005 and 2008 compatibility SQL 2005 та 2008 роках сумісності - -- sql server 2008 database to sql server 2005 SQL Server 2008 бази даних SQL Server 2005 - -- sql the option 100 for compatibility mode is not supported SQL опція 100 сумісності режим не підтримується - -- sql 2005 backward compatibility for server2008 SQL 2005 зворотну сумісність для server2008 - -- using sql server 2008 in 2005 mode з використанням SQL Server 2008 в режимі 2005 - --