How to Set Compatibility Level for SQL Server 2008 or 2005 Database Làm thế nào để tương thích Đặt Cấp bậc cho SQL Server 2008 hay 2005 Cơ sở dữ liệu

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: Khi chọn dữ liệu hoặc thực hiện các yêu cầu tìm kiếm trên Microosft SQL Server 2008 hoặc cơ sở dữ liệu SQL Server 2005, sau thông báo lỗi hay thất bại có thể được trả lại:

[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, Cấp bậc 15, Nhà nước 1, Đường 4] Việc sử dụng các truy vấn không ANSI bên ngoài tham gia vận hành ("*=" hoặc "=*"). 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. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80, bằng cách sử dụng SET COMPATIBILITY_LEVEL tùy chọn thay đổi cơ sở dữ liệu. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). In the future versions Trong tương lai các phiên bản
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. của SQL Server, không tham gia vận hành ANSI sẽ không được hỗ trợ, ngay cả trong tương-quay trở lại chế độ.


or, hoặc,

Msg 4147, Level 15, State 1, Line 3 Msg 4147, Cấp bậc 15, Nhà nước 1, Line 3
The query uses non-ANSI outer join operators (”*=” or “=*”). Việc sử dụng các truy vấn không ANSI bên ngoài tham gia vận hành ("*=" hoặc "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn, bằng cách sử dụng thủ tục lưu trữ sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Trong tương lai phiên bản của SQL Server, không tham gia vận hành ANSI sẽ không được hỗ trợ, ngay cả trong tương-quay trở lại chế độ.

The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Lỗi xảy ra vì Microsoft đã bỏ hỗ trợ và loại bỏ cũ theo phong cách *= =* bên ngoài và tham gia vận hành.

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. Để khắc phục lỗi SQL Server ở trên, DB quản trị viên đã thiết lập cơ sở dữ liệu tương thích với cấp độ 80, trong đó tương đương với SQL Server 2000 như là một workaround tạm thời. 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. Tất nhiên, một giải pháp tốt nhất là sửa đổi các truy vấn SQL kê hoặc mã số để loại bỏ cũ theo phong cách tham gia vận hành hiện nay với tiêu chuẩn tham gia vao cú pháp SQL.

For example, SQL query below is not valid: Ví dụ, truy vấn SQL dưới đây là không hợp lệ:

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: Và cần được thay thế bằng các mã sau đây:

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: Hoặc sau đây viết tắt bên trong tham gia tuyên bố:

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. Đối với những người quản trị không thể thay đổi mã số, các workaround là dễ nhất để trở lại các cấp độ tương thích của các cơ sở dữ liệu để cung cấp các tính tương thích để quay trở lại tuổi theo phong cách gia. 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 lưu trữ các thủ tục (deprecated) hoặc giao dịch-SQL có thể được sử dụng để thiết lập một số (một phần, không phải tất cả) sẽ được cơ sở dữ liệu các hành vi tương thích với các phiên bản trước của SQL Server. This Cái này MSDN article MSDN bài viết provides overview on what behaviors are changed on each compatibility level. cung cấp tổng quan về những gì đang có hành vi thay đổi về tính tương thích của từng cấp độ.

Version of SQL Server that can be reverted to can be one of the following: Phiên bản của SQL Server có thể được hoàn nguyên để có thể là một trong những điều sau đây:

60 = SQL Server 6.0 60 = SQL Server 6,0
65 = SQL Server 6.5 65 = 6,5 SQL Server
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. Lưu ý: Khả năng tương thích cấp độ 60, 65, và 70 không còn có sẵn trong SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. Và trong tương lai phiên bản của SQL Server sẽ hỗ trợ chỉ có hai (2) trước khi quay trở lại phiên bản tương thích. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Một cơ sở dữ liệu có chứa một lần xem có thể lập chỉ mục không được thay đổi tương thích với một cấp độ thấp hơ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. Làm mất cũng lưu ý rằng khi một cơ sở dữ liệu được đặt-để quay trở lại chế độ tương thích, một số các Functionalities mới có thể bị mất đi, chẳng hạn như SQL CLR hỗ trợ và sơ đồ SSMS cho cơ sở dữ liệu. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Bên cạnh, các chế độ tương thích ảnh hưởng đến hành vi chỉ để xác định các cơ sở dữ liệu, không phải cho toàn bộ máy chủ.

Steps to Change and Set Compatibility Level of A Database in SQL Server Bước sau để thay đổi và tương thích Đặt Cấp bậc của một trong cơ sở dữ liệu SQL Server

The following SQL commands can be issued in SQL Server Management Studio Query window. Dưới đây là những lệnh SQL có thể được phát hành trong SQL Server Studio Truy vấn quản lý cửa sổ. Remember to execute Go after each command. Lưu thông tin để thực hiện Về sau mỗi lệnh.

  1. Optional: Set the database to single user access mode: Tùy chọn: Thiết lập cơ sở dữ liệu duy nhất để chế độ truy cập của người dùng:

    ALTER DATABASE database_name SET SINGLE_USER;

  2. Set the database compatibility level to one of the earlier version stated above: Thiết lập cơ sở dữ liệu cấp độ tương thích với một trong những phiên bản trước đó đã nêu ở trên:

    Transact-SQL Method Phương thức giao dịch-SQL

    ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }

    For example, Ví dụ,

    ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 Cơ sở dữ liệu thay đổi my_db SET COMPATIBILITY_LEVEL = 80

    sp_dbcmptlevel Stored Procedure Method Lưu trữ sp_dbcmptlevel Thủ tục Phương pháp

    EXEC sp_dbcmptlevel database_name, compatibility_level value;

    For example, Ví dụ,

    EXEC sp_dbcmptlevel my_db, 90; Exec sp_dbcmptlevel my_db, 90;

  3. Optional: Put back the database in multiuser access mode: Tùy chọn: Đặt lại cơ sở dữ liệu trong chế độ multiuser truy cập:

    ALTER DATABASE database_name SET MULTI_USER;

IMPORTANT : The page is machine translated and provided "as is" without warranty. Lưu ý: Các trang web là máy tính dịch và cung cấp "như là" mà không có bảo hành. Machine translation may be difficult to understand. Máy dịch thuật có thể là khó hiểu. Please refer to Xin vui lòng tham khảo original English article Tiếng Anh bản gốc bài viết whenever possible. bất cứ khi nào có thể.


Leave a Reply Để lại một trả lời

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> Bạn có thể sử dụng các thẻ:<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. Đăng ký nhận xét tính năng đã bị vô hiệu hoá. To receive notification of latest comments posted, subscribe to Để nhận được thông báo về ý kiến mới nhất được đăng, đăng ký với My Digital Life Comments RSS feed Cuộc sống kỹ thuật số Bình luận của tôi nguồn cấp dữ liệu RSS or hoặc register to receive đăng ký để nhận được new comments in daily email digest. Các ý kiến mới trong thư điện tử tiêu hàng ngày.
Custom Search

New Articles Bài viết mới

Incoming Search Terms for the Article Tìm kiếm các điều khoản cho các Điều

The query uses non-ANSI outer join operators ("*=" or "=*"). Việc sử dụng các truy vấn không ANSI bên ngoài tham gia vận hành ("*=" hoặc "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn, bằng cách sử dụng thủ tục lưu trữ sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Trong tương lai phiên bản của SQL Server, không tham gia vận hành ANSI sẽ không được hỗ trợ, ngay cả trong tương-quay trở lại chế độ. - -- sql server compatibility level sql cấp tính tương thích của máy chủ - -- sql 2005 compatibility mode sql 2005 chế độ tương thích - -- sql server 2008 compatibility mode sql server 2008 tương thích chế độ - -- sql server compatibility levels sql máy tính tương thích của các cấp - -- sql compatibility mode sql chế độ tương thích - -- check compatibility level in sql server 2008 kiểm tra tính tương thích ở cấp độ máy chủ sql 2008 - -- compatibility level sql server cấp tính tương thích của máy chủ sql - -- sql serveer 2005 SET COMPATIBILITY_LEVEL sql serveer 2005 SET COMPATIBILITY_LEVEL - -- database compatibility mode is set to 90 cơ sở dữ liệu tương thích được cài là chế độ 90 - -- how to set làm thế nào để cài đặt - -- sql 2005 compatibility level sql 2005 độ tương thích - -- MS SQL 2008 server to run SQL 2005 database compatibility mode MS SQL 2008 để chạy máy chủ cơ sở dữ liệu SQL 2005 chế độ tương thích - -- SET COMPATIBILITY_LEVEL BỘ COMPATIBILITY_LEVEL - -- SQLSERVER compatibility level SQLSERVER cấp tính tương thích - -- SQL compatibility level SQL độ tương thích - -- how to set compatibility level 80 of sql server 2005 làm thế nào để thiết lập tính tương thích của cấp độ 80 máy chủ của sql 2005 - -- sql 2000 2005 select compatibility sql 2000 2005 lựa chọn tương thích - -- sql 2008 compatibility level sql 2008 độ tương thích - -- please set the compatibility level for current database to 80,using the set compatibility_level option of alter database. xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80, bằng cách sử dụng các thiết lập compatibility_level tùy chọn thay đổi cơ sở dữ liệu. - -- set sql server 2008 to 80 đặt máy chủ sql 2008 đến 80 - -- sql server 2008 compatibility sql server 2008 tương thích - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Việc sử dụng các truy vấn không ANSI bên ngoài tham gia vận hành ("*=" hoặc "=*"). 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. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80, bằng cách sử dụng SET COMPATIBILITY_LEVEL tùy chọn thay đổi cơ sở dữ liệu. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Trong tương lai phiên bản của SQL Server, không tham gia vận hành ANSI sẽ không được hỗ trợ, ngay cả trong tương-quay trở lại chế độ. - -- non-ANSI outer join operators ("*=" or "=*"). ANSI bên ngoài không tham gia vận hành ("*=" hoặc "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn - -- changing compatibility level in sql 2008 from 2000 thay đổi cấp độ tương thích trong sql 2008 từ năm 2000 - -- please set the compatibility level for current database to 80 xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 - -- setting sql compatibility cài đặt sql tương thích - -- set compatibility_level option of alter database compatibility_level thiết lập tùy chọn thay đổi cơ sở dữ liệu - -- set compatibility level using sp_dbcmptlevel thiết lập tính tương thích sử dụng các cấp độ sp_dbcmptlevel - -- non-ansi outer join operators and database compatibility ANSI bên ngoài không tham gia vận hành và cơ sở dữ liệu tương thích - -- set compatibility to 80 on sql server 2008 thiết lập tính tương thích đến 80 trên máy chủ sql 2008 - -- sql 2008 6.5 compatibility mode sql 2008 6/5 tương thích chế độ - -- The query uses non-ANSI outer join operators ("*=" or "=*"). Việc sử dụng các truy vấn không ANSI bên ngoài tham gia vận hành ("*=" hoặc "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn, bằng cách sử dụng thủ tục lưu trữ sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). - -- compatibility level sqlserver cấp tính tương thích của sqlserver - -- cpmpatibility level sql 2005 lower 80 cpmpatibility cấp sql 2005 thấp hơn 80 - -- microsoft sql 2005 backward compatibility download Microsoft SQL 2005 quay trở lại tính tương thích tải về - -- SQL Server 2008 + IE 6 compatibility SQL Server 2008 + tính tương thích của trình duyệt IE 6 - -- the query uses non-ansi outer join operators. yêu cầu tìm kiếm sử dụng không ANSI bên ngoài tham gia vận hành. compatibility level for current database to 80 or lower cấp tính tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn - -- sql server 2005 versus 2008 sql server 2005 so với 2008 - -- To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Để chạy truy vấn này mà không cần sửa đổi, xin vui lòng thiết lập các cấp độ tương thích cho hiện tại cơ sở dữ liệu đến 80 hoặc thấp hơn, bằng cách sử dụng thủ tục lưu trữ sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Đó là khuyến khích mạnh mẽ để ghi đè ANSI yêu cầu tìm kiếm bằng cách sử dụng bên ngoài tham gia vận hành (còn lại Outer công, quyền công Outer). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Trong tương lai phiên bản của SQL Server, không tham gia vận hành ANSI sẽ không được hỗ trợ, ngay cả trong tương-quay trở lại chế độ. - -- "sql server 2008" compatibility transact sql "sql server 2008" tính tương thích giao dịch sql - -- SQL Server 2008 database in compatibility mode 90 Cơ sở dữ liệu SQL Server 2008 ở chế độ tương thích 90 - -- compatibility setting for SQL SERVER 2008 thiết lập tương thích cho SQL Server 2008 - -- compatibility mode is set to 90. tương thích được cài là chế độ 90. JOIN USING Sử dụng công - -- how to set sql 2005 compatibility mode làm thế nào để cài đặt chế độ tương thích sql 2005 - -- level sql server sql cấp máy chủ - -- Running 2008 SQL Server Databases in 2005 mode Chạy 2008 Cơ sở dữ liệu SQL Server 2005 ở chế độ - -- set sql server multi user mode sql đặt máy chủ đa người dùng chế độ - -- sql 2005 set cài sql 2005 - -- sql server ansi compatibility sql ANSI máy tính tương thích - --