មាតិកា
- សេចក្តីផ្តើម
- គោលបំណង
- តម្រូវការ
- ការបង្កើត Database
- Syntax ក្នុងការសរសេរ Cursor
- របៀបសរសេរនិងប្រើប្រាស់ Cursors
- ឯកសារយោង..
1. សេចក្តីផ្តើម
Cursor គឺជាdatabase object មួយ ដែលអនុញ្ញាតអោយយើងអាច Process នូវ row របស់ Data នីមួយៗ។ ខាងក្រោមនេះគឺជា Basic ក្នុងការបង្កើត Cursor និងរបៀបក្នុងការសរសេរព្រមទាំងហៅ cursor មកប្រើតែប៉ុណ្ណោះ។
2. គោលបំណង
ក្រោយពីសិក្សាតាម Tutorial នេះ លោកអ្នកនឹងយល់អំពី
- ចេះបង្កើត Database
- ចេះបង្កើត Table
- ចេះសរសេរ Script ដើម្បី Insert data
- របៀបប្រើប្រាស់ cursor នៅក្នុង SQL Server
- ដឹងពី Syntax ក្នុងការសរសេរ Cursor
- យល់ពីរបៀបប្រកាស cursor និងហៅ cursor មកប្រើ
- ចេះ execute stored procedure
3. តម្រូវការ
ដើម្បីអាចប្រើប្រាស់ cursor បានយើងត្រូវមាន
- SQL Server Management Studio (version 2000, 2005, 2008, 2008R2, 2012 និង 2014)
- ក្នុង Tutorial នេះ សូមលើកយក version 014
4. ការបង្កើត Database
- សូមបង្កើត Database មួយឈ្មោះថា “customer_db”
- Right click លើ Databases
- New Database…
- សូមបញ្ចូលឈ្មោះ Database
- ចុច OK
- សូមធ្វើការបង្កើត Table មួយដូចរូប
- Right click លើ Table
- New
- Table…
- សូមបង្កើត Schema Table ដូចរូប
- សូមSave វា ដោយដាក់ឈ្មោះថា Customers
- សូមធ្វើការបញ្ចូល data ទៅក្នុង Table ដោយប្រើប្រាស់ SQL Script
- ចុចលើ Execute (F5)
- ពេលនោះក្នុង Table របស់យើងនឹងមានទិន្នន័យដូចខាងលើ
5. Syntax ក្នុងការសរសេរ Cursor
ខាងក្រោមនេះគឺជា Syntax ដើម្បីសរសេរ cursor ជាដំបូងយើងត្រូវ
- ប្រកាស variables: ដោយផ្អែកលើ Columns ដែលយើងចង់ Fetch data នៅក្នុង Select Query
- ប្រកាស cursor: ដោយផ្តល់ឈ្មោះអោយ cursor ហើយកំណត់ Type របស់វាជា READ_ONLY ជាមួយនឹង Keyword “For” ដើម្បីសរសេរ select query ដែលវានឹង return នូវ record ដែលយើងចង់បាន
- ត្រូវ Open cursor: ខណៈពេលបង្កើត cursor រួចហើយ យើងត្រូវបើក cursor ដោយប្រើប្រាស់នូវ command មួយឈ្មោះថា “OPEN” ។ ពេលនោះ record ដំបូងគឺត្រូវបានទាញចេញ fetch ហើយ saved ចូលទៅក្នុង variable។
- ទោះបីជា record មួយ ត្រូវបាន fetch ក៏ដោយ function “@@FETCH_STATUS” គឺមានតម្លៃ 0។ ហើយភ្លាមៗនោះរាល់ records ទាំងអស់ត្រូវបាន return មកវិញដោយ select query ជាអ្នកធ្វើការ Fetch វិញ ដោយវាបានប្តូរនូវតម្លៃរបស់ខ្លួនវាទៅជា -1 វិញ។
- ការប្រើប្រាស់ cursor គឺវាអមជាមួយនឹង WHILE LOOP ដែល execute រហូតដល់តម្លៃរបស់វាគឺ 0
- នៅខាងក្នុង WHILE LOOP មានន័យថា record ដំបូងគេគឺបានដំណើរការរួចរាល់ ហើយបន្តមកទៀតវាដំណើរការនូវ record បន្ទាប់ រហូតដល់ @@FETCH_STATUS គឺ 0
- ជាចុងក្រោយត្រូវ បិទ cursor ហើយនឹង deallocate វា ដោយប្រើប្រាស់នូវ command “COLSE” និង “DEALLOCATE”
ចំណាំ៖
- ក្នុងការបង្ហាញនេះ យើងប្រើតែ READ_ONLY Cursors
- It is very important to DEALLOCATE a Cursor as otherwise it will stay in database and when you declare a Cursor with same name again, SQL Server will throw an error: A cursor with the name ‘Cursor1’ already exists.
សូមមើលរូបខាងក្រោម
6. របៀបសរសេរនិងប្រើប្រាស់ Cursors
ខាងក្រោមនេះគឺជាឧទាហរណ៍ក្នុងការប្រើប្រាស់ Cursor នៅក្នុង SQL Server Stored Procedure ដែលវានឹងបង្ហាញរាល់ record របស់ Customers ទាំងអស់
- ដើម្បី execute store procedure
- ប្រើប្រាស់ keyword ឈ្មោះថា “exec”
- សរសេរឈ្មោះ store procedure
- ពេលនោះវានឹងបង្ហាញលទ្ធផលដូចខាងក្រោម៖
7. ឯកសារយោង
- https://www.aspsnippets.com/Articles/Using-Cursor-in-SQL-Server-Stored-Procedure-with-example.aspx