How to Set Compatibility Level for SQL Server 2008 or 2005 Database Paano Itakda Kaangkupan Level para sa mga SQL Server 2,008 o 2,005 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: Kapag ang pagpili ng data o gumaganap ng query sa Microosft SQL Server 2,008 o SQL Server 2,005 database, ang mga sumusunod na mensahe ng error o pagkabigo ay maaaring bumalik:
[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 4,147, Level 15, Estado 1, Line 4] Ang tanong ay gumagamit ng mga di-Ansi panlabas na sumali sa mga operator ("*=" o "=*"). 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. Upang patakbuhin ang tanong na walang pagbabago, paki-set ang compatibility para sa antas ng kasalukuyang database hanggang 80, gamit ang opsyon na set ng COMPATIBILITY_LEVEL baguhin DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ito ay malakas na inirerekomenda upang muling isulat ang mga katanungan gamit Ansi panlabas na sumali sa mga operator (kaliwa panlabas JOIN, MAY KARAPATAN SUMALI panlabas). In the future versions Sa mga susunod na bersyon
of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. ng SQL Server, hindi pang-Ansi sumali sa mga operator ay hindi suportado sa kahit na sa mga pabalik-mode compatibility.
or, o,
Msg 4147, Level 15, State 1, Line 3 Msg 4,147, Level 15, Estado 1, Line 3
The query uses non-ANSI outer join operators (”*=” or “=*”). Ang tanong ay gumagamit ng mga di-Ansi panlabas na sumali sa mga operator ("*=" o "=*"). To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. Upang patakbuhin ang tanong na walang pagbabago, paki-set ang compatibility para sa antas ng kasalukuyang database hanggang 80 o mas mababa, gamit ang naka-imbak na pamaraan sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). Ito ay malakas na inirerekomenda upang muling isulat ang mga katanungan gamit Ansi panlabas na sumali sa mga operator (kaliwa panlabas JOIN, MAY KARAPATAN SUMALI panlabas). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes. Sa mga susunod na bersyon ng SQL Server, hindi pang-Ansi sumali sa mga operator ay hindi suportado sa kahit na sa mga pabalik-mode compatibility.
The error happens because Microsoft has dropped support for and eliminated old-style *= and =* outer join operators. Ang error ang mangyayari dahil sa Microsoft ay bumaba na suporta para at eliminated old-style *= at =* panlabas na sumali sa operator.
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. Upang ayusin ang mga error SQL Server sa itaas, DB administrator ay itakda ang database ng antas ng compatibility sa 80, na katumbas sa SQL Server 2,000 bilang isang temporary workaround. 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. Of course, ang pinakamahusay na solusyon ay ang baguhin ang SQL pahayag o tanong code na tanggalin na ang mga old-style na sumali sa mga operator na may mga kasalukuyang standard SQL sumali sa syntax.
For example, SQL query below is not valid: Halimbawa, SQL query sa ibaba ay hindi balido:
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: At dapat ay papalitan ng ang mga sumusunod na 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: O ng pagsunod sa mga panloob abbreviated sumali na pahayag:
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. Para sa mga administrador na hindi maaaring palitan ang code, ang pinakamadaling workaround ay manumbalik ang compatibility ng antas ng ang database upang magbigay ng mga pabalik na compatibility sa old-style na nagdurugtong. 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 naka-imbak na mga pamamaraan (deprecated) o mangasiwa-SQL ay maaaring gamitin upang itakda ang tiyak (bahagyang, hindi lahat) pag-uugali ng database na compatible sa lumang bersyon ng SQL Server. This Ito MSDN article MSDN artikulo provides overview on what behaviors are changed on each compatibility level. ay nagbibigay ng pangkalahatang-ideya sa kung ano ang pag-uugali ay nabago sa bawat antas ng compatibility.
Version of SQL Server that can be reverted to can be one of the following: Bersyon ng SQL Server na maaaring reverted na maaaring isa sa mga sumusunod:
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 2,000
90 = SQL Server 2005 90 = SQL Server 2,005
100 = SQL Server 2008 100 = SQL Server 2,008
Note: Compatibility level 60, 65, and 70 no longer available in SQL Server 2008. Tandaan: Kaangkupan level 60, 65, at 70 ay hindi na magagamit sa SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. At sa hinaharap na bersyon ng SQL Server ay sumusuporta lamang ng dalawang (2) bago salin ng pabalik na compatibility. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Isang database na naglalaman ng isang index tingnan ang hindi na maaaring baguhin sa isang antas ng compatibility mas mababa kaysa sa 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. Mayroon ring kumuha ng tandaan na kapag ang isang database ay nakatakda sa mga pabalik-compatibility mode, ilan sa mga bagong andar maaaring mawala, tulad ng SQL CLR suporta at SSMS diagram para sa database. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server. Sa tabi, ang compatibility mode na nakakaapekto sa pag-uugali lamang para sa tinukoy na database, hindi para sa buong server.
Steps to Change and Set Compatibility Level of A Database in SQL Server Hakbang sa Palitan at Itakda Kaangkupan Antas ng Isang Database sa SQL Server
The following SQL commands can be issued in SQL Server Management Studio Query window. Ang mga sumusunod na SQL command ay maaaring maibigay sa mga SQL Server Management Studio window Query. Remember to execute Go after each command. Alalahanin na execute Go pagkatapos ng bawat command.
- Optional: Set the database to single user access mode: Opsyonal: Itakda ang database upang single mode-access ng gumagamit:
ALTER DATABASE database_name SET SINGLE_USER; - Set the database compatibility level to one of the earlier version stated above: Itakda ang database ng antas ng pagiging tugma sa isa sa mga lumang bersyon na nakasaad sa itaas:
Transact-SQL Method Pakialaman-SQL ng Paraan
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }For example, Halimbawa, ang
ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80 Baguhin DATABASE my_db set COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel Stored Procedure Method sp_dbcmptlevel Stored Pamamaraan ng Paraan
EXEC sp_dbcmptlevel database_name, compatibility_level value;For example, Halimbawa, ang
EXEC sp_dbcmptlevel my_db, 90; EXEC sp_dbcmptlevel my_db, 90;
- Optional: Put back the database in multiuser access mode: Opsyonal: Ilagay bumalik sa database sa multiuser access mode:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT : The page is machine translated and provided "as is" without warranty. MAHALAGA: Ang pahina ng makina ay isinalin at ibinigay "bilang ganito" walang warranty. Machine translation may be difficult to understand. Machine pagsasalin ay maaaring mahirap maintindihan. Please refer to Mangyaring sumangguni sa original English article orihinal na Ingles na artikulo whenever possible. hangga't maaari.
Related Articles Mga Kaugnay na Akda
- Uninstall and Remove Multiple Database Instances of Microsoft SQL Server 2005 Uninstall at Tanggalin ang Maramihang Database mga pagkakataon ng Microsoft SQL Server 2,005
- Microsoft DreamSpack Offers Free Download and License of Visual Studio 2008, Server 2003, SQL Server 2005 and More Microsoft Offers DreamSpack Libreng Download at License ng Visual Studio 2008, Server 2003, SQL Server 2005 at Higit pang mga
- Download Update for Windows 7 and Server 2008 R2 Beta (KB967062) to Fix Common Application Compatibility Issue I-download ang update para sa Windows 7 at Server 2,008 R2 Beta (KB967062) upang Ayusin Karaniwang Issue Application Kaangkupan
- Optimize SQL Server 2000, 2005 or 2008 in Large RAM System by Locking Pages in Memory and AWE I-optimize ang SQL Server 2000, 2,005 o 2,008 sa mga malalaking RAM System sa pamamagitan ng pagsasara ng Pahina sa Memory at mangha
- Check System Compatibility Via Microsoft New Application Compatibility Toolkit Version 5.5 Suriin System Kaangkupan Via Microsoft Bagong Application Kaangkupan Toolkit Version 5.5
- How To Perform Scheduled Backups For SQL Server 2005 Express Paano Para gawin ang mga naka-iskedyul na Backups Para sa SQL Server Express 2,005
- Error Has Occurred While Establishing A Connection To SQL Server 2005 Which Does Not Allow Local and Remote Connections Error Has Nangyari Habang Itinataguyod ang isang koneksyon Upang SQL Server 2,005 Aling ba Hindi Payagan Lokal at Remote Connections
- Microsoft Virtual Server 2005 R2 Download Available for Free Microsoft Virtual Server 2,005 R2 Download Available for Free
- Change Oracle Database User Password Baguhin ang Oracle Database ng gumagamit Pasword
- Microsoft Virtual Server 2005 R2 SP1 (Enterprise Edition) Direct Download Links Microsoft Virtual Server 2,005 R2 SP1 (Enterprise Edition) Direct Download Links










































August 14th, 2009 03:17 Agosto 14, 2009 03:17
[...] 7) My Digital Life. [...] 7) My Digital Life. How to Set Compatibility Level for SQL Server 2008 or 2005 Database. Paano Itakda Kaangkupan Level para sa mga SQL Server 2,008 o 2,005 Database. http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005-.. http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005- .. . . [...] [...]