មាតិកា

  1. សេចក្តីផ្តើម
  2. គោលបំណង
  3. តម្រូវការ
  4. ការបង្កើត Database
  5. Syntax ក្នុងការសរសេរ Cursor
  6. របៀបសរសេរនិងប្រើប្រាស់ Cursors
  7. ឯកសារយោង..

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