ကွန်ပျူတာများဒေတာဘေ့စ

SQL stored procedures: ဖန်တီးဖို့နှင့်အသုံးပြုခြင်း

SQL stored procedures ထဲမှာသိမ်းထားတဲ့နိုင်ဟာ executable software ကို module တစ်ခုဖြစ်ကြောင်း အဆိုပါဒေတာဘေ့စ အမျိုးမျိုးသောအရာဝတ္ထု၏ပုံစံ။ တနည်းအားဖြင့်ဒါဟာ SQL-ကြေညာချက်ပါဝင်သောအရာဝတ္ထုဖြစ်ပါတယ်။ ဤရွေ့ကား stored procedures ကောင်းတစ်ဦးစွမ်းဆောင်ရည်ကိုရရန် client ကိုလျှောက်လွှာအတွက်ကွပ်မျက်ခံရနိုင်ပါသည်။ ထို့အပြင်ထိုကဲ့သို့သောအဆောက်အဦကိုမကြာခဏကတခြား script များအနေဖြင့်သို့မဟုတ်ပင်အခြားမည်သည့်အပိုင်းကနေဟုခေါ်ကြသည်။

နိဒါန်း

လူအတော်များများသူတို့ကအမျိုးမျိုးသော၏လုပ်ထုံးလုပ်နည်းများနှင့်ဆင်တူဖြစ်ကြောင်းယုံကြည် အဆင့်မြင့်ပရိုဂရမ်းမင်းဘာသာစကား (က MS SQL မှလွဲ. အသီးသီး) ။ ဖြစ်ကောင်းဖြစ်နိုင်ဤစကားမှန်သည်။ သူတို့ကသူတို့တစ်တွေဆင်တူတန်ဖိုးကိုထုတ်ပေးနိုင်သည်, အလားတူ parameters တွေကိုရှိသည်။ ထို့အပြင်အချို့ကိစ္စများတွင်သူတို့အဆက်အသွယ်သို့ဝင်ကြလော့။ ဥပမာအားဖြင့်, သူတို့ DDL နှင့် DML အချက်အလက်များ၏ databases ကိုအဖြစ်အသုံးပြုသူလုပ်ဆောင်ချက်များကို (- UDF ကုဒ်အမည်) နှင့်အတူပေါင်းစပ်ထားပါသည်။

တကယ်တော့သိမ်းဆည်းထား SQL လုပ်ထုံးလုပ်နည်းများထိုကဲ့သို့သောဖြစ်စဉ်များသူတို့ကိုတပါးအမျိုးသားတို့တွင်ခွဲခြားကြောင်းအားသာချက်တစ်ခုကျယ်ပြန့်ရှိသည်။ လုံခြုံမှု, အမျိုးမျိုးပြောင်းလဲ programming ကိုကုန်ထုတ်စွမ်းအား - ဤအမှုအလုံးစုံတို့ကို databases ကိုအတူလုပ်ကိုင်အသုံးပြုသူများကိုပိုမိုဆွဲဆောင်။ ငါနာမကိုအမှီ« SQL Server ကိုစီမံခန့်ခွဲမှုစတူဒီယို»အောက်ရှိ "Microsoft က" ကနေအစီအစဉ်ကိုရောက်တဲ့အချိန်မှာလူကြိုက်များ၏အထွတ်အထိပ်, အနှစ်က 2005-2010 ဘို့လုပျထုံးလုပျနညျးရောက်လာတယ်။ ၎င်း၏အကူအညီဖြင့် databases ကိုအတူအလုပ်, အများကြီးပိုလွယ်ပိုပြီးလက်တွေ့ကျတဲ့နှင့်ပိုပြီးအဆင်ပြေဖြစ်လာသည်။ တစ်နှစ်တာတစ်နှစ်အကြာတွင်, ဒီ သတင်းအချက်အလက်ကိုထုတ်လွှင်၏နည်းလမ်း ဟာ programming ကိုပတ်ဝန်းကျင်အတွက်လူကြိုက်များရရှိခဲ့သည်။ ယနေ့ က MS SQL Server databases ကိုနှင့်အတူ "communicate" ကိုအသုံးပြုသူများအတွက် "Excel ကို" နဲ့တစ်ဦးတန်းတူအပေါ်မှာရပ်ထားတဲ့လုံးဝပုံမှန်အတိုင်းအစီအစဉ်ဖြစ်ပါတယ်။

သင်လုပ်ထုံးလုပ်နည်းကိုပဌနာသောအခါ, ချက်ချင်းမလိုအပ်တဲ့လုပ်ငန်းစဉ်များနှင့်အသုံးပြုသူဝင်ရောက်စွက်ဖက်မှုမရှိဘဲဆာဗာကလုပ်ငန်းများ၌ဖြစ်ပါတယ်။ သို့ဖြစ်လျှင်သင်သည်သတင်းအချက်အလက်များနှင့်အတူမည်သည့်အရေးယူဆောင်ရွက်မှုလုပ်ဆောင်နိုင်သည်ကိုပယ်ဖျက်, ကွပ်မျက်ပြောင်းလဲမှု။ ဤအမှုအလုံးစုံတို့ကိုကျော် Single-handedly သူတို့အားတ္ထုအပေါ်ရှုပ်ထွေးလုပ်ရပ်များလုပ်ဆောင်ခဲ့သူ DDL-အော်ပရေတာအတွက်ဖြစ်ပါတယ်။ ထိုသို့အားလုံးအလွန်လျှင်မြန်စွာဖြစ်ပျက်နှင့်ဆာဗာအမှန်တကယ် loaded မထားဘူး။ ဤသည်မြန်နှုန်းနှင့်ကုန်ထုတ်စွမ်းအားကိုသင်လျင်မြန်စွာဆာဗာများနှင့်အပြန်အလှန်အသုံးပြုသူများထံမှအချက်အလက်များ၏ပမာဏလွှဲပြောင်းကြကုန်အံ့။

သတင်းအချက်အလက်နှင့်အတူဤလုပ်ငန်းကိုအကောင်အထည်ဖေါ်ရန်အများအပြားပရိုဂရမ်းမင်းဘာသာစကားနည်းပညာများရှိပါသည်။ ဤရွေ့ကား, ဥပမာ, မှ PL / SQL တို့ပါဝင်သည် ဒေတာဘေ့စစီမံခန့်ခွဲမှုစနစ်အ InterBase နှင့် Firebird စနစ်များအတွက် Oracle က, PSQL, အဖြစ်ဂန္ "maykrosoftovskih » transaction-SQL ။ ထိုသူအပေါင်းတို့သည်သင်တစ်ဦးကြီးမားတဲ့ဒေတာဘေ့စကိုင်တွယ်အပေါ်မိမိတို့ကိုယ်ပိုင် algorithms သုံးစွဲဖို့ခွင့်ပြု, stored procedures ဖန်တီး run ဖို့ဒီဇိုင်းရေးဆွဲနေကြပါတယ်။ ဒါဟာလိုအပ်သောဖြစ်ပြီးထိုကဲ့သို့သောအချက်အလက်များ၏စီမံခန့်ခွဲမှုအထဲကသယ်ဆောင်သောသူတို့က, ထို့ကြောင့်အချို့သောအချက်အလက်များ၏ဖန်တီးမှု, ပြင်ဆင်ခြင်းသို့မဟုတ်ဖျက်မှုကိုခွင့်ပြုချက်မရှိဘဲတတိယပါတီများအနေဖြင့်အားလုံးအရာဝတ္ထုအားကာကွယ်ရန်နှင့်နိုငျကွောငျးကိုသေချာစေရန်။

ထွက်နိုင်ရေး

ဤရွေ့ကားဒေတာဘေ့စအရာဝတ္ထုကွဲပြားခြားနားတဲ့နည်းလမ်းတွေထဲမှာပရိုဂရမ်နိုင်ပါသည်။ ဤအချိန်နှင့်စွမ်းအင်ချွေတာသောအသုံးပြုသူများကိုအများဆုံးသင့်လျော်သောဖြစ်လိမ့်မယ်လို့လုပ်ငန်းစဉ်၏အမျိုးအစားကိုရွေးဖို့ခွင့်ပြုပါတယ်။ ထို့အပြင်လုပ်ထုံးလုပ်နည်းကိုယ်တိုင်ကအရှင်ဆာဗာနှင့်အသုံးပြုသူအကြားဆက်သွယ်ရေးအပေါ်သုံးစွဲကြီးမားအချိန်ကိုရှောင်ရှား, လုပ်ငန်းများ၌ဖြစ်ပါတယ်။ အဆိုပါ module ကိုလုံးဝမဆိုအချိန်အတွက်လမ်းကြောင်းမှန်ပေါ်အတွက် reprogrammed နှင့်ပြောင်းလဲနိုင်ပါသည်။ SQL ၏ပစ်လွှတ်လုပ်ထုံးလုပ်နည်းသိမ်းဆည်းထားရာနှင့်အတူအမြန်နှုန်းသတိပြုအထူးသဖြင့်တန်ဖိုးရှိဖြစ်ပေါ်: ဖြစ်စဉ်ကအဆင်ပြေပြေနဲ့စွယ်စုံအောင်ပြုလုပ်ဆင်တူပိုမြန်သည်အခြားဖြစ်ပါတယ်။

လုံခွုံမှု

သတင်းအချက်အလက်အပြောင်းအလဲနဲ့ဒီအမျိုးအစားကပိုကောင်းလုံခြုံရေးကိုထောက်ပံ့ပေးကြောင်းအလားတူဖြစ်စဉ်များကနေကွဲပြားနေသည်။ ဤသည်ကိုရယူသုံးလုပျထုံးလုပျနညျးအနေဖြင့်အခြားအသုံးပြုသူများလုံးဝဖယ်ရှားပစ်နိုင်ပါတယ်ဆိုတဲ့အချက်ကိုရေးအတွက်လုံလောက်သည်။ ဒါကအုပ်ချုပ်ရေးမှူးကြားဖြတ်သို့မဟုတ်ဒေတာဘေ့စမှခွင့်ပြုချက်မရှိဘဲဝင်ရောက်ခွင့်ကိုကြောက်ရွံ့ဘဲ, လွတ်လပ်စွာသူတို့နှင့်အတူစစ်ဆင်ရေးလုပ်ဆောင်သွားရန်ခွင့်ပြုပါလိမ့်မယ်။

ဒေတာ transfer

တစ်ဦးသိမ်းဆည်းထား SQL လုပ်ထုံးလုပ်နည်းနှင့် client ကိုလျှောက်လွှာများအကြားဆက်သွယ်ရေးအတွက်ဘောင်များနှင့်ပြန်လာတန်ဖိုးများကိုသုံးစွဲဖို့ဖြစ်ပါတယ်။ အဆုံးစွန်သောတစ်ဦး stored procedure ဖို့ဒေတာထုတ်လွှင့်ရန်မလိုအပ်ပါဘူး, ဒါပေမယ့် (အဓိကအားဖြင့်အသုံးပြုသူရဲ့တောငျးဆိုခကျြအပျေါက) သတင်းအချက်အလက်နှင့် SQL များအတွက်လုပ်ငန်းများ၌။ ပြီးတာနဲ့ stored procedure က၎င်း၏အလုပ်ပြီးစီးခဲ့ပါသည် (ဆန္ဒရှိလျှင်, တဖန်, ဒါပေမယ့်), ကဥပမာအားဖြင့်တစ်ဦးသိမ်းဆည်းထား SQL လုပ်ထုံးလုပ်နည်းများနှင့်အပြန်မှဖုန်းခေါ်အဖြစ်အကောင်အထည်ဖော်စေခြင်းငှါအရာအားဖြင့်နည်းလမ်းအမျိုးမျိုးသုံးပြီးခေါ်ဆိုမှု application ကိုမှဒေတာ packets တွေကိုပြန်ပို့ပေး:

- ဒေတာထုတ်လွှင့် Output parameter သည်အမျိုးအစားကနေတဆင့်;

- ပြန်ကြေညာချက်ကနေတဆင့် data ကိုဂီယာ;

- လေယာဉ်တင်သင်္ဘောရွေးချယ်ရေးမှတဆင့်ဒေတာများထုတ်လွှင့်။

ယခုမှာဤလုပ်ငန်းစဉ်တူအတွင်းပိုင်းကြည့်ဘယ်လိုကြည့်ပါ။

1. SQL လုပ်ထုံးလုပ်နည်းအတွက်အမှုဆောင်အရာရှိ-သိမ်းဆည်းထား Create

သငျသညျက MS SQL (စီမံခန့်ခွဲမှုစတူဒီယို) တွင်တစ်ဦးလုပ်ထုံးလုပ်နည်းဖန်တီးနိုင်ပါတယ်။ လုပ်ထုံးလုပ်နည်းနေသူများကဖန်တီးသောနောက်, ဒါကြောင့်လုပ်ထုံးလုပ်နည်းဖန်ဆင်းခြင်း၏အော်ပရေတာများကဖျော်ဖြေသောတစ်ဦးသည် Programmable ဒေတာဘေ့စ node ကိုအပေါ်စာရင်းဝင်ဖြစ်ပါတယ်။ အရာဝတ္ထုနာမကိုအမှီပါဝင်သောအမှုဆောင်အရာရှိ-တစ်ဦးဖြစ်စဉ်ကိုသုံးပြီး SQL stored procedures execute ရန်။

နာမတော်ကိုအမှီ ပြု. ဖန်တီးသောအခါပထမဦးဆုံးလုပ်ထုံးလုပ်နည်းလာ, ပြီးတော့သူ့ကိုဖို့တာဝန်ဖြစ်ကြောင်းဦးတည်းသို့မဟုတ်ထိုထက်ပို parameters တွေကိုဖန်ဆင်းတော်မူ၏။ parameters optional ကိုဖြစ်စေနိုင်သည်။ သို့သော်လည်း parameter (s) ကိုပွီးနောကျ, အချို့လိုအပ်သောစစ်ဆင်ရေးထွက်သယ်ဆောင်ရန်လိုအပ်သောဖြစ်ပါသည်, စာဖြင့်ရေးသားစေမည်အကြောင်း, လုပ်ထုံးလုပ်နည်း၏ကိုယ်ကို ie ။

ခန္ဓာကိုယ်အထဲတွင်တည်ရှိသောဒေသခံ variable တွေကို, ရှိနိုင်ပါသည်, ဤ variable တွေကိုဒေသခံများနှင့်လုပ်ထုံးလုပ်နည်းများနှင့်စပ်လျဉ်း၌ရှိကြ၏ဆိုတဲ့အချက်ကို။ တနည်းအားဖြင့်သူတို့ကသာခန္ဓာကိုယ်ကုသမှုအတွင်းထည့်သွင်းစဉ်းစားနိုင်ပါတယ် Microsoft SQL Server ။ ဤကိစ္စတွင်ထဲမှာသိမ်းထားတဲ့လုပ်ထုံးလုပ်နည်းများဒေသခံစဉ်းစားနေကြသည်။

ထို့ကြောင့်တစ်ဦးဖြစ်စဉ်ကိုဖန်တီးရန်, ကျွန်တော်တစ်ဦးလုပ်ထုံးလုပ်နည်းအမည်နှင့်တစ်ဦးလုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်အဖြစ်အနည်းဆုံး parameter သည်လိုအပ်ပါတယ်။ ဤကိစ္စတွင်အတွက်အလွန်အစွမ်းထက်တဲ့ option ကိုခွဲထုတ်အတွက် schema နာမည်လုပျထုံးလုပျနညျးမြား၏ဖန်ဆင်းခြင်းနှင့်အကောင်အထည်ဖော်ကြောင်းသတိပြုပါ။

အဆိုပါလုပ်ထုံးလုပ်နည်းကိုယျခန်ဓာဥပမာ, ထိုကဲ့သို့သောဒါပေါ်စားပွဲတစ်ခုကိုစားပွဲတစ်ခုသို့မဟုတ်တစ်ခုထက်ပိုသောအတန်းထည့်, အဒေတာဘေ့စအမျိုးအစားနှင့်ဇာတ်ကောင်ထူထောင်နှင့်အမျှအော်ပရေတာ SQL မဆိုကြင်နာရှိနိုင်ပါသည်။ မည်သို့ပင်ဆိုစေကာ, ထိုလုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်အထဲတွင်အချို့လုပ်ငန်းများကန့်သတ်။ အရေးအပါဆုံးကန့်သတ်အချို့သည်အောက်တွင်ဖော်ပြထားသောနေကြသည်:

- ခန္ဓာကိုယ်အခြားမည်သည့် stored procedure ဖန်တီးပါဘူး;

- ခန္ဓာကိုယ်အရာဝတ္ထုအကြောင်းမှားယွင်းသောအထင်အမြင်မဖန်တီးရမည်,

- ခန္ဓာကိုယ်မဆိုအစပျိုးဖန်တီးမပေးပါဘူး။

2. လုပ်ထုံးလုပ်နည်းများ၏ခန္ဓာကိုယ်အတွင်း variable ကို Set

သငျသညျကိုယျခန်ဓာ၏လုပ်ထုံးလုပ်နည်းဖို့ variable တွေကိုဒေသခံစေနိုင်သည်, ပြီးတော့သူတို့တစ်တွေလုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်အတွင်းဖြစ်လိမ့်မည်။ A ကောင်းဆုံးအလေ့အကျင့်ဟာ stored procedure ကိုယ်ခန္ဓာ၏အစအဦးမှာ variable ကိုဖန်တီးရန်ဖြစ်ပါသည်။ သို့သော်သင်သည်လည်းအရာဝတ္ထု၏ခန္ဓာကိုယ်ထဲမှာဘယ်နေရာမှာမဆို variable တွေကိုသတ်မှတ်နိုင်သည်။

တစ်ခါတစ်ရံအချို့ကိုသင် variable တွေကိုအတူတူအတန်းသတ်မှတ်နှင့်တစ်ဦးချင်းစီ variable ကိုတစ်ကော်မာများကကွဲကွာကြသည်ကိုသတိပြုမိလိမ့်မည်။ ထို့အပြင် variable ကို @ အတူ prefixed ကြောင်းသတိပြုပါ။ လုပ်ထုံးလုပ်နည်း၏ခန္ဓာကိုယ်၌, သငျသညျအရာကိုသင်ချင်နေတဲ့ variable ကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်, NAME1 တို့ @ တစ် variable ကိုလုပ်ထုံးလုပ်နည်းကိုယ်ခန္ဓာ၏အဆုံးဆီသို့ထုတ်ပြန်ကြေညာနိုင်ပါတယ်။ တစ်ဦး variable ကိုမှတန်ဖိုးသတ်မှတ်နိုင်ရန်အတွက်ပုဂ္ဂိုလ်ရေးအချက်အလက်များ၏အစုတခုသုံးပြီးကြေညာခဲ့ပါတယ်။ တစ်ဦးထက်ပို variable ကိုအတူတူအတန်းများတွင်ကြေငြာသည့်အခါအခွအေန, ဤအခြေအနေများတွင်အသုံးပြုပုဂ္ဂိုလ်ရေးအချက်အလက်များ၏တစ်ဦးတည်းသာထားမတူဘဲ။

အသုံးပြုသူများမကြာခဏမေးခွန်းမေးပါက "လုပ်ထုံးလုပ်နည်းများ၏ခန္ဓာကိုယ်ထဲမှာတစ်ခုတည်းကြေညာချက်ထဲမှာမျိုးစုံတန်ဖိုးများကိုသတ်မှတ်ဖို့ကိုဘယ်လို '' ကောင်းပြီ။ စိတ်ဝင်စားစရာကောင်းတဲ့မေးခွန်းတစ်ခုကို, သို့သော်ဤသင်ထင်ထက်အများကြီးပိုလွယ်သည်။ အဖြေ: «ကို Select လုပ်ပါ var = value ကို "ကဲ့သို့သောအားလုံးအတွက်၏အကူအညီနှင့်အတူ။ သငျသညျကော်မာကွဲကွာထိုအအားလုံးအတွက်, ကိုသုံးနိုင်သည်။

3. တစ် SQL stored procedure Create

လူမျိုး၏ဥပမာတစ်ခုကျယ်ပြန့်မျိုးစုံအတွက်ရိုးရှင်းတဲ့ stored procedure ကိုပြသကြောင်း execute ။ သို့သော်လုပ်ထုံးလုပ်နည်းအဆိုပါခေါ်ဆိုမှုဖြစ်စဉ်ကိုက (အစဉ်အမြဲပေမယ့်မဟုတ်) ကအနီးကပ်တန်ဖိုးရှိလိမ့်မည်ဟုထိုကဲ့သို့သော parameters တွေကိုယူနိုငျသညျ။ သူတို့ကိုက်ညီလျှင်, ခန္ဓာကိုယ်အတွင်းသက်ဆိုင်ရာဖြစ်စဉ်များစတင်သည်။ ဥပမာအားဖြင့်, သင်ခေါ်ဆိုသူ၏ထံမှမြို့နှင့်ဒေသ ယူ. စာရေးဆရာများသက်ဆိုင်ရာမြို့နှင့်ဒေသရည်ညွှန်းဘယ်လောက်နဲ့ပတ်သက်တဲ့ data ကိုပြန်လာလိမ့်မယ်တဲ့လုပ်ထုံးလုပ်နည်းဖန်တီးပါ။ အဆိုပါလုပ်ထုံးလုပ်နည်းကိုဤတွက်ချက်မှုစာရေးဆရာများဖျော်ဖြေဘို့, ဥပမာ, Pubs စာရေးဆရာများတစ်ဒေတာဘေ့စစားပွဲပေါ်မှာ query ပါလိမ့်မယ်။ ဤအ databases ကိုရရှိရန်ဥပမာ, ကို Google SQL2005 စာမျက်နှာနှင့်အတူ SQL script ကိုဒေါင်းလုဒ်လုပ်။

ယခင်ဥပမာထဲမှာ, လုပ်ထုံးလုပ်နည်းအင်္ဂလိပ်တွေနဲ့ @State နှင့် @City ဟုခေါ်ဝေါ်ခြင်းကိုခံရမည်ဟုရာနှစ်ခု parameters တွေကို, ကြာပါသည်။ အဆိုပါဒေတာအမျိုးအစားလျှောက်လွှာအတွက်သတ်မှတ်ထားသောအမျိုးအစားနဲ့ကိုက်ညီ။ အဆိုပါလုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်အတွင်းပိုင်း variable တွေကို @TotalAuthors (အားလုံးစာရေးဆရာများ) ရှိပြီး, ဤ variable ကို၎င်းတို့၏အရေအတွက်ကိုဖော်ပြရန်အသုံးပြုသည်။ နောက်တစ်ခုသောသူအပေါင်းတို့သည်အရေအတွက်အပိုင်းတစ်ခုရွေးချယ်ရေးတောင်းဆိုမှုကိုလာပါတယ်။ နောက်ဆုံးအနေဖြင့်တွက်ချက်တန်ဖိုးပုံနှိပ်ကြေညာချက်သုံးပြီး output ကို window တွင်ပြသနေသည်။

တစ်ဦး SQL stored procedure ဖျော်ဖြေဖို့ကိုဘယ်လို

လုပ်ထုံးလုပ်နည်းဖျော်ဖြေဖို့နည်းလမ်းနှစ်ခုရှိပါတယ်။ ပထမဦးဆုံးလမ်းတစ်ကော်မာ-separated စာရင်းလုပ်ထုံးလုပ်နည်းအမည်ဖြင့်အပြီးပြုအဖြစ် parameters တွေကိုဖြတ်သန်းနေဖြင့်ပြသထားပါသည်။ ကျနော်တို့ (ယခင်ဥပမာထဲမှာကဲ့သို့) နှစ်ခုတန်ဖိုးများများဆိုပါစို့။ ဤရွေ့ကားတန်ဖိုးများကို variable တွေကိုနှင့် @State @City လုပ်ထုံးလုပ်နည်းသုံးပြီးစုဆောင်းနေကြသည်။ ဒီနည်းလမ်းကိုခုနှစ်, ဂီယာအမိန့်၏အရေးကြီးသော parameters တွေကို။ ဤနည်းလမ်းကိုအငြင်းပွားမှုများ၏ဂီယာ sequence ကိုလို့ခေါ်ပါတယ်။ ဒုတိယနည်းလမ်းမှာ parameters များကိုပြီးသားအမိန့်အရေးမပါအရာအမှု၌တိုက်ရိုက်တာဝန်ပေးနေကြသည်။ ဤဒုတိယနည်းလမ်းအမည်ရှိအငြင်းပွားမှုများ၏ဂီယာအဖြစ်လူသိများသည်။

အဆိုပါလုပ်ထုံးလုပ်နည်းအနည်းငယ်ပုံမှန်ကနေသွေဖည်ပေမည်။ လူအားလုံးတို့သည်ယခင်သာဓက၌ရှိသကဲ့သို့, တူပေမယ့် parameters တွေကိုသာဤနေရာတွင်ပြောင်းရွှေ့နေကြသည်။ ဒါက @City parameter သည်ဖြစ်ပါတယ်ပထမဦးဆုံးသိုလှောင်ထားနှင့် @State လာမယ့်ပုံသေတန်ဖိုးမှသိမ်းဆည်းထားခြင်းဖြစ်သည်။ ကို default setting ကိုများသောအားဖြင့်သီးခြားစီခွဲဝေဖြစ်ပါတယ်။ SQL stored procedures အဖြစ်ရိုးရှင်း parameters တွေကိုဖြစ်ကြသည်။ ဤကိစ္စတွင်ခုနှစ်, ထို option, CA "" ဟာ UT '' ၏ပုံသေတန်ဖိုးအစားထိုး "ဖြစ်သည်။ တစ်စက္ကန့်ဂျထဲမှာ ", CA" ကိုတစ်ဦးတည်းသာ @City များအတွက်အငြင်းအခုံတန်ဖိုးနှင့် @State option ကိုပေးထားတဲ့ defaults ဖြတ်သန်းပါတယ်။ အတွေ့အကြုံရှိပြီးသားပရိုဂရမ်မာအပေါငျးတို့သက default variable တွေကိုသို့သော်လည်း parameter စာရင်း၏အဆုံးပိုမိုနီးကပ်စွာတည်ရှိသောဖြစ်ကြောင်းအကြံပြုပါသည်။ ကွပ်မျက်မဖြစ်နိုင်ပါဒီလိုမှမဟုတ်ရင်, ထို့နောက်သင်ကြာကြာနှင့်ပိုပြီးရှုပ်ထွေးအမည်ရှိအငြင်းပွားမှုများ၏အပြောင်းအရွှေ့နှင့်အတူအလုပ်လုပ်ရန်ရှိသည်။

4. stored procedure SQL Server: ပြန်လာ၏နည်းလမ်းများ

ယင်းကိုခေါ်လုပ်ထုံးလုပ်နည်းထဲမှာသိမ်းထားတဲ့ဒေတာပေးပို့ဖို့သုံးအဓိကနည်းလမ်းတွေရှိပါတယ်။ သူတို့ကအောက်တွင်ဖော်ပြထားသောနေကြသည်:

- ပြန်လာတန်ဖိုးများလုပ်ထုံးလုပ်နည်းသိမ်းဆည်းထား;

- Output parameter သည် stored procedures;

- ထိုသိမ်းဆည်းထားလုပ်ထုံးလုပ်နည်းများတစ်ဦးကိုရွေးချယ်ပါ။

SQL stored procedures ၏ 4.1 ပြန်သွားတန်ဖိုးများ

ဒီလုပ်ထုံးလုပ်နည်းထဲမှာ, လုပ်ထုံးလုပ်နည်းဒေသခံ variable ကို၏တန်ဖိုးကိုသတ်မှတ်ကြောင့်ပြန်လည်ရောက်ရှိ။ အဆိုပါလုပ်ထုံးလုပ်နည်းကိုလည်းတိုက်ရိုက်စဉ်ဆက်မပြတ်တန်ဖိုးကိုပြန်လာနိုင်ပါတယ်။ အောက်ပါဥပမာမှာကျွန်တော်တို့ဟာစပွန်ဆာများ၏စုစုပေါင်းအရေအတွက်ကပြန်လာမယ့်လုပ်ထုံးလုပ်နည်းဖန်တီးခဲ့ကြသည်။ ကျနော်တို့ယခင်လုပ်ထုံးလုပ်နည်းနှင့်အတူဤနှိုင်းယှဉ်လျှင်သင်ပုံနှိပ်၏တန်ဖိုးပြောင်းပြန်ဖြင့်အစားထိုးကြောင်းတွေ့နိုင်ပါသည်။

အခုတော့ပြန်သွားပါရဲ့လုပ်ထုံးလုပ်နည်းလုပ်ဆောင်ခြင်းနှင့်တန်ဖိုးဖော်ပြရန်ဖို့ဘယ်လိုကြည့်ရှုကြကုန်အံ့။ လုပ်ငန်းစဉ်အပြီးထွက်သယ်ဆောင်သောတည်ထောင်ရန်လိုအပ်သည့်လုပ်ထုံးလုပ်နည်းများနှင့်အ variable ကိုပုံနှိပ်ခြင်း, ဖျော်ဖြေ။ အစားအော်ပရေတာပုံနှိပ်၏, ဥပမာ, ကို Select လုပ်ပါ-အော်ပရေတာကိုသုံးပါ @RetValue ရွေးချယ်ပါ, OutputValue နိုင်သည်ကိုသတိပြုပါ။

4.2 Output Parameter SQL stored procedures

အဆိုပါတုံ့ပြန်မှုတန်ဖိုးကိုကျွန်တော်ယခင်ဥပမာထဲမှာမြင်ကြပြီတဲ့တစ်ခုတည်းသော variable ကိုပြန်လာဖို့အသုံးပြုနိုင်ပါသည်။ အဆိုပါ Output သုံးပြီးလုပ်ထုံးလုပ်နည်းအဆိုပါတောင်းဆိုပါတီတစ်ခုသို့မဟုတ်ထို့ထက် ပို. variable တွေကိုပေးပို့ဖို့ခွင့်ပြုပါတယ်။ လုပ်ထုံးလုပ်နည်းဖန်တီးသောအခါ output parameter သည်အချိန်အတိုင်းဤသော့ချက်စကားလုံး« output »ခေါ်လိုက်ပါမယ်ဖြစ်ပါတယ်။ သို့သော်လည်း parameter တစ်ခု output ကို parameter သည်အဖြစ်သတ်မှတ်ထားသောလျှင်, လုပ်ထုံးလုပ်နည်းအရာဝတ္ထုတစ်ခုတန်ဖိုးကိုသတ်မှတ်ရပေမည်။ လုပျထုံးလုပျနညျး SQL သိမ်းဆည်းထားရာ၏ဥပမာနောက်ဆုံးသတင်းအချက်အလက်မှပြန်လာသောထိုကဲ့သို့သောအမှု၌အောက်တွင်တွေ့မြင်နိုင်ပါသည်။

@TotalAuthors နှင့် @TotalNoContract: ဤဥပမာထဲမှာ, နှစ်တနင်္ဂနွေအမည်အားရှိရလိမ့်မည်။ သူတို့က parameter သည်စာရင်းထဲတွင်သတ်မှတ်ထားသောနေကြသည်။ ဤရွေ့ကား variable တွေကိုလုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်အတွင်းတန်ဖိုးများကိုတာဝန်ပေးအပ်ထားပါသည်။ ကျနော်တို့က output ကို parameters များကိုအသုံးပြုတဲ့အခါ, ခေါ်ဆိုသူ၏လုပ်ထုံးလုပ်နည်းခန္ဓာကိုယ်ထဲမှာ set value ကိုတွေ့မြင်နိုင်သည်။

ထို့အပြင်ယခင်ဇာတ်လမ်းထဲမှာနှစ်ခု variable တွေကိုတစ်ခု output ကို parameter သည်အဖြစ်သိမ်းဆည်းထားလုပ်ထုံးလုပ်နည်းများ, MS SQL Server install လုပ်ပြီးသောတန်ဖိုးများကိုကြည့်ဖို့ကြေညာနေကြသည်။ ထိုအခါလုပ်ထုံးလုပ်နည်းပုံမှန်တန်ဖိုးကို«, CA » parameter သည်လျှောက်ထားခြင်းအားဖြင့်ဖျော်ဖြေနေသည်။ အောက်ပါ parameters တွေကို output ကိုဖြစ်ကြပြီး, ဒါကြောင့်, variable တွေကိုသတ်မှတ်ထုံးစံ၌လွန်နေကြသည်ကြေညာခဲ့ပါတယ်။ တစ်ဦး variable ကို output ကို keyword ကိုလည်းဤနေရာတွင်သတ်မှတ်လိုက်သောအခါသတိပြုပါ။ လုပ်ထုံးလုပ်နည်းကိုအောင်မြင်စွာပြီးစီးခဲ့သည်ပြီးနောက်, output ကို parameters များကို အသုံးပြု. ပြန်လာသောတန်ဖိုးကိုမက်ဆေ့ခ်ျကိုပြတင်းပေါက်အပေါ်ပြသလျက်ရှိသည်။

4.3 တစ်ဦး SQL stored procedures ရွေးချ

ဒီနည်းပညာဟာ stored procedure တောင်းဆိုဘို့ပုံစံစားပွဲပေါ်မှာဒေတာတန်ဖိုးများ (RecordSet) တွင်အစုတခုပြန်သွားဖို့ကိုအသုံးပြုသည်။ ဒီဥပမာထဲမှာ, SQL ဒီ parameter သည် @AuthId အားဖြင့်ပြန်လာသောမှတ်တမ်းများ filtering များကစားပွဲပေါ်မှာ "စာရေးသူ" တောင်းဆို @AuthID parameters တွေကိုနှင့်အတူလုပ်ထုံးလုပ်နည်းသိမ်းဆည်းထား။ ကို Select လုပ်ပါအော်ပရေတာတစ်ဦး stored procedure တောင်းဆိုဖို့ပြန်ရောက်ရပါမည်အဘယ်အရာကိုဆုံးဖြတ်ခဲ့ကြသည်။ အခါ stored procedure ကျောမှတဆင့်ကူးစက်သော AuthId ။ ထိုသို့သောလုပ်ထုံးလုပ်နည်းတစ်ဦးတည်းသာစံချိန်သို့မဟုတ်မှာအားလုံးအဘယ်သူအားမျှပြန်လည်ရောက်ရှိအမြဲဖြစ်ပါတယ်။ သို့သော် stored procedure တစ်ဦးထက်ပို entry ကို၏ပြန်လာအပေါ်မည်သည့်ကန့်သတ်မထားဘူး။ မကြာခဏဥပမာပြန်လာအချက်အလက်များကိုတွက်ချက် variable တွေကိုနှင့်အတူ parameters တွေကိုသုံးပြီးရွေးချယ်ထားသည့်အရာထဲတွင်တွေ့နိုင်ပါသည်စုစုပေါင်းတန်ဖိုးဟာဗဟုပေးခွငျးအားဖွငျ့ပွုမိသည်။

နိဂုံးချုပ်

တစ်ဦးက stored procedure တော်တော်အလေးအနက်အစီအစဉ်ပြန်ရောက်သို့မဟုတ်လွှဲပြောင်းအဖြစ် client ကိုလျှောက်လွှာကြောင့်လိုအပ်သော variable တွေကိုထူထောင်ဖြစ်ပါတယ်။ အဆိုပါ stored procedure ဆာဗာသူ့ဟာသူအပေါ်ကွပ်မျက်ခံရခြင်းဖြစ်သည်ကတည်းက (အချို့တွက်ချက်မှုများအတွက်) ဆာဗာများနှင့် client ကိုလျှောက်လွှာများအကြားကြီးမားသော volumes ကိုအတွက် data တွေကိုဖလှယ်ရှောင်ရှားနိုင်ပါသည်။ ဒီသင်တန်း၏, သူတို့ရဲ့ကိုင်ဆောင်သူ၏လက်ဖြစ်သည့်, ထို SQL ဆာဗာပေါ်တွင်ဝန်ကိုလျှော့ချဖို့ကဖြစ်နိုင်ခြေကိုမှန်ကန်စေသည်။ အဆိုပါ subspecies တစ်ခုမှာလုပ်ထုံးလုပ်နည်းများ T က SQL သိမ်းဆည်းထားသည်, ဒါပေမယ့်သူတို့ရဲ့လေ့လာမှုတစ်ခုအထင်ကြီးဒေတာဘေ့စများ၏ဖန်တီးမှုတွင်ပါဝင်ပတ်သက်သူတို့အားလိုအပ်ပါသည်။ stored procedures ၏လေ့လာမှုအတွက်အသုံးဝင်သောဖြစ်နိုင်သည်ကိုတစ်ခုလုံးကိုပြည့်ပြည့်စုံစုံ၏ကြီးမားသောပင်ကြီးမားသောငွေပမာဏပညာရှင်ပီသစွာအပါအဝင်တင်းကျပ်စွာပရိုဂရမ်းမင်း, လုပ်ဖို့စီစဉ်နေပါတယ်သောသူတို့အဘို့ဒီလိုအပ်ချက်, သို့သော်လည်းရှိပါသည်။

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 my.delachieve.com. Theme powered by WordPress.