ការសិក្សាពីរបៀបប្រើប្រាស់ Cursor នៅក្នុង SQL Stored Procedure

មាតិកា

  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

Published by sysomeho

Ho Sysome obtains B.S. degree in Computer Science from Phnom Penh Internation University (PPIU) in 2013 and currently studying Master of Science in IT (MSIT) at Asia Euro University (AEU). He worked as an IT Officer at Microfinance Institute and Bank in Phnom Penh. He is familar in programming language such as VB.NET, Java (Java2EE, Spring), Codeigniter, Laravel, mysql, sql server and so on. He enjoys sharing knowledges, learns from other, and develop himself. Find him on Facebook: Spy Ro, Linkedin: Sysome HO.

Leave a comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.