ms sql சர்வர் சூழலில் சேமிக்கப்பட்ட நடைமுறைகள். T-SQL இல் சேமிக்கப்பட்ட நடைமுறைகள் - sql சேவையகத்தில் சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்குதல், மாற்றுதல், நீக்குதல்

SQL சேவையகத்துடன் பணிபுரியும் போது, ​​பயனர்கள் சில செயல்களைச் செயல்படுத்தும் தங்கள் சொந்த நடைமுறைகளை உருவாக்கலாம். சேமிக்கப்பட்ட செயல்முறைகள் முழு அளவிலான தரவுத்தள பொருள்கள், எனவே அவை ஒவ்வொன்றும் ஒரு குறிப்பிட்ட தரவுத்தளத்தில் சேமிக்கப்படும். சேமிக்கப்பட்ட செயல்முறைக்கு நேரடி அழைப்பு, செயல்முறை அமைந்துள்ள தரவுத்தளத்தின் சூழலில் செய்யப்பட்டால் மட்டுமே சாத்தியமாகும்.

சேமிக்கப்பட்ட நடைமுறைகளின் வகைகள்

SQL சேவையகம் பல வகையான சேமிக்கப்பட்ட நடைமுறைகளைக் கொண்டுள்ளது.

    கணினியில் சேமிக்கப்பட்ட நடைமுறைகள் பல்வேறு நிர்வாகச் செயல்களைச் செய்ய வடிவமைக்கப்பட்டுள்ளன. ஏறக்குறைய அனைத்து சேவையக நிர்வாக நடவடிக்கைகளும் அவர்களின் உதவியுடன் செய்யப்படுகின்றன. கணினியில் சேமிக்கப்பட்ட நடைமுறைகள் கணினி அட்டவணைகளுடன் பணிபுரியும் இடைமுகம் என்று நாம் கூறலாம், இது இறுதியில் பயனர் மற்றும் கணினி தரவுத்தளங்களின் கணினி அட்டவணையில் இருந்து தரவை மாற்றுதல், சேர்த்தல், நீக்குதல் மற்றும் மீட்டெடுப்பது வரை வரும். கணினியில் சேமிக்கப்பட்ட செயல்முறைகள் sp_ உடன் முன்னொட்டாக உள்ளன, அவை கணினி தரவுத்தளத்தில் சேமிக்கப்படுகின்றன, மேலும் வேறு எந்த தரவுத்தளத்தின் சூழலில் அழைக்கப்படலாம்.

    தனிப்பயன் சேமிக்கப்பட்ட நடைமுறைகள் சில செயல்களைச் செயல்படுத்துகின்றன. சேமிக்கப்பட்ட நடைமுறைகள் ஒரு முழு அளவிலான தரவுத்தளப் பொருளாகும். இதன் விளைவாக, ஒவ்வொரு சேமிக்கப்பட்ட செயல்முறையும் ஒரு குறிப்பிட்ட தரவுத்தளத்தில் அமைந்துள்ளது, அங்கு அது செயல்படுத்தப்படுகிறது.

    தற்காலிகமாக சேமிக்கப்பட்ட நடைமுறைகள் ஒரு குறுகிய காலத்திற்கு மட்டுமே உள்ளன, அதன் பிறகு அவை தானாகவே சேவையகத்தால் அழிக்கப்படும். அவை உள்ளூர் மற்றும் உலகளாவிய என பிரிக்கப்பட்டுள்ளன. உள்ளூர் தற்காலிக சேமிக்கப்பட்ட நடைமுறைகள் அவை உருவாக்கப்பட்ட இணைப்பிலிருந்து மட்டுமே அழைக்கப்படும். அத்தகைய செயல்முறையை உருவாக்கும் போது, ​​நீங்கள் அதற்கு ஒரு # எழுத்தில் தொடங்கும் பெயரைக் கொடுக்க வேண்டும். அனைத்து தற்காலிக பொருட்களைப் போலவே, பயனர் துண்டிக்கப்படும் போது அல்லது சேவையகம் மறுதொடக்கம் செய்யப்படும்போது அல்லது நிறுத்தப்படும்போது, ​​இந்த வகையான சேமிக்கப்பட்ட செயல்முறைகள் தானாகவே நீக்கப்படும். உலகளாவிய தற்காலிகச் சேமிக்கப்பட்ட நடைமுறைகள் அதே நடைமுறையைக் கொண்ட சேவையகத்திலிருந்து எந்த இணைப்பிற்கும் கிடைக்கும். அதை வரையறுக்க, அதற்கு ## என்ற எழுத்துகளுடன் தொடங்கும் பெயரைக் கொடுங்கள். சேவையகம் மறுதொடக்கம் செய்யப்படும்போது அல்லது நிறுத்தப்படும்போது அல்லது அவை உருவாக்கப்பட்ட சூழலில் இணைப்பு மூடப்படும்போது இந்த நடைமுறைகள் நீக்கப்படும்.

தூண்டுகிறது

தூண்டுகிறதுஒரு வகையான சேமிக்கப்பட்ட செயல்முறை ஆகும். டேட்டா மேனிபுலேஷன் லாங்குவேஜ் (டிஎம்எல்) ஆபரேட்டர் டேபிளில் செயல்படுத்தப்படும் போது அவை செயல்படுத்தப்படும். தரவு ஒருமைப்பாட்டைச் சரிபார்க்கவும், பரிவர்த்தனைகளைத் திரும்பப் பெறவும் தூண்டுதல்கள் பயன்படுத்தப்படுகின்றன.

தூண்டுதல்இது ஒரு தொகுக்கப்பட்ட SQL செயல்முறையாகும், இது தொடர்புடைய தரவுத்தளத்தில் சில நிகழ்வுகள் நிகழ்வதன் மூலம் செயல்படுத்தப்படுகிறது. தூண்டுதல்களின் பயன்பாடு, பெரும்பாலும், தரவுத்தள பயனர்களுக்கு மிகவும் வசதியானது. இருப்பினும், அவற்றின் பயன்பாடு பெரும்பாலும் I/O செயல்பாடுகளுக்கான கூடுதல் ஆதார செலவுகளை உள்ளடக்கியது. சேமிக்கப்பட்ட நடைமுறைகள் அல்லது பயன்பாட்டு நிரல்களைப் பயன்படுத்தி அதே முடிவுகளை (மிகக் குறைவான மேல்நிலையுடன்) அடைய முடியும் போது, ​​தூண்டுதல்களைப் பயன்படுத்துவது நடைமுறையில் இல்லை.

தூண்டுகிறதுதரவுத்தளத்தில் தரவு ஒருமைப்பாட்டை பராமரிக்கப் பயன்படும் ஒரு சிறப்பு SQL சர்வர் கருவியாகும். ஒருமைப்பாடு கட்டுப்பாடுகள், விதிகள் மற்றும் இயல்புநிலைகள் எப்போதும் விரும்பிய அளவிலான செயல்பாட்டை அடைய முடியாது. அவற்றின் நம்பகத்தன்மை மற்றும் யதார்த்தத்தை உறுதிப்படுத்த சிக்கலான தரவு சரிபார்ப்பு வழிமுறைகளை செயல்படுத்துவது பெரும்பாலும் அவசியம். கூடுதலாக, சில நேரங்களில் அட்டவணை மதிப்புகளில் ஏற்படும் மாற்றங்களை நீங்கள் கண்காணிக்க வேண்டும், இதனால் தொடர்புடைய தரவு தேவைக்கேற்ப மாற்றப்படும். விதிகள், நிலையான மதிப்புகள் போன்றவற்றுக்கு இணங்க அனைத்து செயல்பாடுகளும் முடிந்தபின் நடைமுறைக்கு வரும் ஒரு வகையான வடிப்பான்களாக தூண்டுதல்கள் கருதப்படலாம்.

தூண்டுதல்இது ஒரு சிறப்பு வகை சேமிக்கப்பட்ட செயல்முறை ஆகும், இது தூண்டுதல்கள் தொடர்புடைய அட்டவணையில் தரவை மாற்ற முயற்சிக்கும்போது சேவையகத்தால் தானாகவே தொடங்கப்படும். ஒவ்வொரு தூண்டுதல்ஒரு குறிப்பிட்ட அட்டவணையுடன் இணைக்கப்பட்டுள்ளது. அது செய்யும் அனைத்து தரவு மாற்றங்களும் ஒரு பரிவர்த்தனையாகவே கருதப்படும். பிழை அல்லது தரவு ஒருமைப்பாடு மீறல் கண்டறியப்பட்டால், பரிவர்த்தனை திரும்பப் பெறப்படும். எனவே மாற்றங்கள் தடை செய்யப்பட்டுள்ளன. தூண்டுதலால் ஏற்கனவே செய்யப்பட்ட மாற்றங்கள் அனைத்தும் செயல்தவிர்க்கப்படும்.

உருவாக்குகிறது தூண்டுதல்தரவுத்தள உரிமையாளர் மட்டுமே. இந்த கட்டுப்பாடு அட்டவணைகளின் கட்டமைப்பில் தற்செயலான மாற்றங்கள், பிற பொருட்களை அவற்றுடன் இணைக்கும் வழிகள் போன்றவற்றைத் தவிர்க்க உங்களை அனுமதிக்கிறது.

தூண்டுதல்இது மிகவும் பயனுள்ள மற்றும் அதே நேரத்தில் ஆபத்தான தீர்வாகும். எனவே, அதன் செயல்பாட்டின் தர்க்கம் தவறாக இருந்தால், நீங்கள் ஒரு முழு தரவுத்தளத்தையும் எளிதாக அழிக்கலாம், எனவே தூண்டுதல்கள் மிகவும் கவனமாக பிழைத்திருத்தப்பட வேண்டும்.

வழக்கமான சப்ரூட்டின் போலல்லாமல், தூண்டுதல்ஒரு தூண்டுதல் நிகழ்வு நிகழும் போதெல்லாம் மறைமுகமாக செயல்படுத்தப்படுகிறது, மேலும் அதில் வாதங்கள் இல்லை. அதைச் செயல்படுத்துவது சில நேரங்களில் தூண்டுதல் என்று அழைக்கப்படுகிறது. தூண்டுதல்களைப் பயன்படுத்தி, பின்வரும் இலக்குகள் அடையப்படுகின்றன:

    உள்ளிடப்பட்ட தரவின் சரியான தன்மையை சரிபார்த்தல் மற்றும் சிக்கலான தரவு ஒருமைப்பாடு கட்டுப்பாடுகளை செயல்படுத்துவது கடினமானது, இல்லையெனில் சாத்தியமற்றது, ஒரு அட்டவணையில் அமைக்கப்பட்ட ஒருமைப்பாடு கட்டுப்பாடுகளைப் பயன்படுத்துதல்;

    ஒரு குறிப்பிட்ட வழியில் செயல்படுத்தப்பட்ட அட்டவணையைப் புதுப்பிக்கும்போது சில செயல்களைச் செய்ய நினைவூட்டும் எச்சரிக்கைகளை வழங்குதல்;

    செய்யப்பட்ட மாற்றங்கள் மற்றும் அவற்றைச் செய்த நபர்கள் பற்றிய தகவல்களைப் பதிவு செய்வதன் மூலம் தணிக்கைத் தகவல்களைக் குவித்தல்;

    பிரதி ஆதரவு.

CREATE TRIGGER கட்டளையின் அடிப்படை வடிவம் கீழே காட்டப்பட்டுள்ளது:

<Определение_триггера>::=

TRIGGER தூண்டுதல்_பெயரை உருவாக்கவும்

முன் | பிறகு<триггерное_событие>

ஆன்<имя_таблицы>

<список_старых_или_новых_псевдонимов>]

<тело_триггера>

தூண்டுதல் நிகழ்வுகள் அட்டவணையில் வரிசைகளைச் செருகுதல், நீக்குதல் மற்றும் புதுப்பித்தல் ஆகியவற்றைக் கொண்டிருக்கும். பிந்தைய வழக்கில், தூண்டுதல் நிகழ்வுக்கான குறிப்பிட்ட அட்டவணை நெடுவரிசை பெயர்களை நீங்கள் குறிப்பிடலாம். தூண்டுதலின் நேரம் முந்தைய முக்கிய வார்த்தைகளைப் பயன்படுத்தி தீர்மானிக்கப்படுகிறது ( தூண்டுதல்அதனுடன் தொடர்புடைய நிகழ்வுகள் செயல்படுத்தப்படுவதற்கு முன் அல்லது பின் (அவை செயல்படுத்தப்பட்ட பிறகு) இயங்கும்.

தூண்டுதலால் செய்யப்படும் செயல்கள் நிகழ்வின் கீழ் உள்ள ஒவ்வொரு வரிசைக்கும் (ஒவ்வொரு வரிசைக்கும்) அல்லது ஒவ்வொரு நிகழ்வுக்கும் ஒரு முறை மட்டுமே (ஒவ்வொரு அறிக்கைக்கும்) குறிப்பிடப்படுகிறது.

தவறாக எழுதப்பட்ட தூண்டுதல்கள் இறந்த பூட்டுகள் போன்ற கடுமையான சிக்கல்களுக்கு வழிவகுக்கும். தூண்டுதல்கள் நீண்ட காலத்திற்கு பல ஆதாரங்களைத் தடுக்கலாம், எனவே அணுகல் முரண்பாடுகளைக் குறைப்பதில் சிறப்பு கவனம் செலுத்தப்பட வேண்டும்.

தூண்டுதல்தற்போதைய தரவுத்தளத்தில் மட்டுமே உருவாக்க முடியும், ஆனால் தொலை சேவையகத்தில் உள்ளவை உட்பட தூண்டுதலுக்குள் உள்ள பிற தரவுத்தளங்களை அணுக முடியும்.

கடைசியாக புதுப்பிக்கப்பட்டது: 08/14/2017

பெரும்பாலும், ஒரு தரவு செயல்பாடு ஒரு குறிப்பிட்ட வரிசையில் செயல்படுத்தப்பட வேண்டிய வழிமுறைகளின் தொகுப்பைக் குறிக்கிறது. எடுத்துக்காட்டாக, தயாரிப்பு வாங்குதலைச் சேர்க்கும்போது, ​​ஆர்டர்கள் அட்டவணையில் தரவை உள்ளிட வேண்டும். இருப்பினும், இதைச் செய்வதற்கு முன், நீங்கள் வாங்கும் தயாரிப்பு கையிருப்பில் உள்ளதா என்பதைச் சரிபார்க்க வேண்டும். நீங்கள் பல கூடுதல் நிபந்தனைகளை சரிபார்க்க வேண்டும். அதாவது, உண்மையில், ஒரு பொருளை வாங்கும் செயல்முறை ஒரு குறிப்பிட்ட வரிசையில் செய்யப்பட வேண்டிய பல செயல்களை உள்ளடக்கியது. இந்த விஷயத்தில், இந்த அனைத்து செயல்களையும் ஒரு பொருளாக இணைப்பது மிகவும் உகந்ததாக இருக்கும் - சேமிக்கப்பட்ட செயல்முறை(சேமிக்கப்பட்ட செயல்முறை).

அதாவது, சாராம்சத்தில், சேமிக்கப்பட்ட நடைமுறைகள் ஒரு ஒற்றை அலகு என செயல்படுத்தப்படும் வழிமுறைகளின் தொகுப்பாகும். இவ்வாறு, சேமிக்கப்பட்ட நடைமுறைகள் சிக்கலான செயல்பாடுகளை எளிமையாக்கி அவற்றை ஒரு பொருளில் வைப்பதை சாத்தியமாக்குகின்றன. ஒரு பொருளை வாங்கும் செயல்முறை அதற்கேற்ப மாறும், நடைமுறைக் குறியீட்டை மாற்றினால் போதும். அதாவது, செயல்முறை குறியீடு நிர்வாகத்தையும் எளிதாக்குகிறது.

சேமிக்கப்பட்ட நடைமுறைகள், அட்டவணையில் உள்ள தரவுகளுக்கான அணுகலைக் கட்டுப்படுத்தவும், அதன் மூலம் இந்தத் தரவு தொடர்பாக வேண்டுமென்றே அல்லது தற்செயலாக தேவையற்ற செயல்களின் வாய்ப்பைக் குறைக்கவும் அனுமதிக்கின்றன.

மற்றொரு முக்கியமான அம்சம் செயல்திறன். வழக்கமான SQL அறிக்கைகளை விட சேமிக்கப்பட்ட நடைமுறைகள் பொதுவாக வேகமாகச் செயல்படும். ஏனென்றால், செயல்முறை குறியீடு முதலில் தொடங்கப்படும்போது ஒரு முறை தொகுக்கப்பட்டு, பின்னர் தொகுக்கப்பட்ட வடிவத்தில் சேமிக்கப்படும்.

சேமிக்கப்பட்ட செயல்முறையை உருவாக்க, CREATE PROCEDURE அல்லது CREATE PROC கட்டளையைப் பயன்படுத்தவும்.

இவ்வாறு, சேமிக்கப்பட்ட செயல்முறை மூன்று முக்கிய அம்சங்களைக் கொண்டுள்ளது: குறியீடு எளிமைப்படுத்தல், பாதுகாப்பு மற்றும் செயல்திறன்.

எடுத்துக்காட்டாக, தயாரிப்புகளைப் பற்றிய தரவைச் சேமிக்கும் தரவுத்தளத்தில் ஒரு அட்டவணை உள்ளது என்று வைத்துக்கொள்வோம்:

டேபிள் தயாரிப்புகளை உருவாக்கவும் (ஐடி ஐடி ஐடென்டிட்டி பிரைமரி கீ, தயாரிப்புப் பெயர் NVARCHAR(30) பூஜ்யமாக இல்லை, உற்பத்தியாளர் NVARCHAR(20) பூஜ்யமாக இல்லை, தயாரிப்புகளின் எண்ணிக்கை இயல்புநிலை 0, விலை பணம் பூஜ்யமில்லை);

இந்த அட்டவணையில் இருந்து தரவை மீட்டெடுக்க சேமிக்கப்பட்ட செயல்முறையை உருவாக்குவோம்:

USE பொருட்கள்db; தயாரிப்புப் பெயர், உற்பத்தியாளர், தயாரிப்புகளில் இருந்து விலை எனத் தேர்ந்தெடுத்து, செயல்முறை தயாரிப்பு சுருக்கத்தை உருவாக்கவும்

CREATE PROCEDURE கட்டளை ஒரு தனி தொகுப்பில் அழைக்கப்பட வேண்டும் என்பதால், தற்போதைய தரவுத்தளத்தை அமைக்கும் USE கட்டளையை தொடர்ந்து புதிய தொகுப்பை வரையறுக்க GO கட்டளை வருகிறது.

செயல்முறை பெயரை AS முக்கிய சொல்லுடன் பின்பற்ற வேண்டும்.

மீதமுள்ள ஸ்கிரிப்ட்டில் இருந்து ஒரு செயல்முறையின் உடலைப் பிரிக்க, செயல்முறை குறியீடு பெரும்பாலும் BEGIN...END தொகுதியில் வைக்கப்படுகிறது:

USE பொருட்கள்db; ப்ராடக்ட் ப்ராடக்ட் சுருக்கத்தை உருவாக்கவும்.

செயல்முறையைச் சேர்த்த பிறகு, சப்நோடில் உள்ள SQL சர்வர் மேனேஜ்மென்ட் ஸ்டுடியோவில் உள்ள தரவுத்தள முனையில் அதைக் காணலாம். நிரலாக்கத்திறன் -> சேமிக்கப்பட்ட நடைமுறைகள்:

மேலும் காட்சி இடைமுகம் மூலமாகவும் செயல்முறையை நாம் கட்டுப்படுத்த முடியும்.

நடைமுறையை செயல்படுத்துதல்

சேமிக்கப்பட்ட செயல்முறையை செயல்படுத்த, EXEC அல்லது EXECUTE கட்டளையை அழைக்கவும்:

EXEC தயாரிப்பு சுருக்கம்

ஒரு செயல்முறையை நீக்குதல்

ஒரு செயல்முறையை அகற்ற, DROP PROCEDURE கட்டளையைப் பயன்படுத்தவும்:

டிராப் செயல்முறை தயாரிப்பு சுருக்கம்

சேமிக்கப்பட்ட செயல்முறைசெயல்முறை அமைந்துள்ள தரவுத்தளத்தின் சூழலில் இது மேற்கொள்ளப்பட்டால் மட்டுமே சாத்தியமாகும்.

சேமிக்கப்பட்ட நடைமுறைகளின் வகைகள்

SQL சர்வர் பல வகைகளைக் கொண்டுள்ளது சேமிக்கப்பட்ட நடைமுறைகள்.

  • அமைப்பு சேமிக்கப்பட்ட நடைமுறைகள்பல்வேறு நிர்வாக நடவடிக்கைகளை மேற்கொள்ள வடிவமைக்கப்பட்டுள்ளது. ஏறக்குறைய அனைத்து சேவையக நிர்வாக நடவடிக்கைகளும் அவர்களின் உதவியுடன் செய்யப்படுகின்றன. அமைப்புமுறை என்று சொல்லலாம் சேமிக்கப்பட்ட நடைமுறைகள்சிஸ்டம் டேபிள்களுடன் பணிபுரியும் இடைமுகம் ஆகும், இது இறுதியில் பயனர் மற்றும் கணினி தரவுத்தளங்களின் சிஸ்டம் டேபிள்களில் இருந்து தரவை மாற்றுவது, சேர்த்தல், நீக்குவது மற்றும் மீட்டெடுக்கிறது. அமைப்பு சேமிக்கப்பட்ட நடைமுறைகள் sp_ முன்னொட்டு உள்ளது, கணினி தரவுத்தளத்தில் சேமிக்கப்படும் மற்றும் வேறு எந்த தரவுத்தளத்தின் சூழலில் அழைக்கப்படலாம்.
  • தனிப்பயன் சேமிக்கப்பட்ட நடைமுறைகள்சில நடவடிக்கைகளை செயல்படுத்தவும். சேமிக்கப்பட்ட நடைமுறைகள்- ஒரு முழு அளவிலான தரவுத்தள பொருள். இதன் விளைவாக, ஒவ்வொன்றும் சேமிக்கப்பட்ட செயல்முறைஅது செயல்படுத்தப்படும் ஒரு குறிப்பிட்ட தரவுத்தளத்தில் அமைந்துள்ளது.
  • தற்காலிகமானது சேமிக்கப்பட்ட நடைமுறைகள்சிறிது நேரம் மட்டுமே இருக்கும், அதன் பிறகு அவை தானாகவே சர்வரால் அழிக்கப்படும். அவை உள்ளூர் மற்றும் உலகளாவிய என பிரிக்கப்பட்டுள்ளன. உள்ளூர் தற்காலிக சேமிக்கப்பட்ட நடைமுறைகள்அவை உருவாக்கப்பட்ட இணைப்பிலிருந்து மட்டுமே அழைக்க முடியும். அத்தகைய செயல்முறையை உருவாக்கும் போது, ​​நீங்கள் அதற்கு ஒரு # எழுத்தில் தொடங்கும் பெயரைக் கொடுக்க வேண்டும். எல்லா தற்காலிக பொருட்களையும் போல, சேமிக்கப்பட்ட நடைமுறைகள்பயனர் துண்டிக்கப்படும் போது அல்லது சேவையகம் மறுதொடக்கம் செய்யப்படும் போது அல்லது நிறுத்தப்படும் போது இந்த வகை தானாகவே நீக்கப்படும். உலகளாவிய தற்காலிகமானது சேமிக்கப்பட்ட நடைமுறைகள்அதே நடைமுறையைக் கொண்ட சேவையகத்திலிருந்து எந்த இணைப்புகளுக்கும் கிடைக்கும். அதை வரையறுக்க, அதற்கு ## என்ற எழுத்துகளுடன் தொடங்கும் பெயரைக் கொடுங்கள். சேவையகம் மறுதொடக்கம் செய்யப்படும்போது அல்லது நிறுத்தப்படும்போது அல்லது அவை உருவாக்கப்பட்ட சூழலில் இணைப்பு மூடப்படும்போது இந்த நடைமுறைகள் நீக்கப்படும்.

சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்கவும், மாற்றவும் மற்றும் நீக்கவும்

உருவாக்கம் சேமிக்கப்பட்ட செயல்முறைபின்வரும் சிக்கல்களைத் தீர்ப்பதை உள்ளடக்கியது:

  • உருவாக்கப்பட்ட வகையை தீர்மானித்தல் சேமிக்கப்பட்ட செயல்முறை: தற்காலிக அல்லது வழக்கம். கூடுதலாக, நீங்கள் உங்கள் சொந்த அமைப்பை உருவாக்கலாம் சேமிக்கப்பட்ட செயல்முறை, sp_ உடன் முன்னொட்டாக ஒரு பெயரைக் கொடுத்து கணினி தரவுத்தளத்தில் வைப்பது. இந்த செயல்முறை எந்த உள்ளூர் சர்வர் தரவுத்தளத்தின் சூழலில் கிடைக்கும்;
  • அணுகல் உரிமைகளைத் திட்டமிடுதல். உருவாக்கும் போது சேமிக்கப்பட்ட செயல்முறைதரவுத்தள பொருள்களை உருவாக்கிய பயனருக்கு அதே அணுகல் உரிமைகள் இருக்கும் என்பதை கணக்கில் எடுத்துக்கொள்ள வேண்டும்;
  • வரையறை சேமிக்கப்பட்ட செயல்முறை அளவுருக்கள். பெரும்பாலான நிரலாக்க மொழிகளில் உள்ள நடைமுறைகளைப் போலவே, சேமிக்கப்பட்ட நடைமுறைகள்உள்ளீடு மற்றும் வெளியீட்டு அளவுருக்கள் இருக்கலாம்;
  • குறியீடு வளர்ச்சி சேமிக்கப்பட்ட செயல்முறை. செயல்முறை குறியீட்டில் மற்றவர்களுக்கு அழைப்புகள் உட்பட எந்த SQL கட்டளைகளின் வரிசையும் இருக்கலாம் சேமிக்கப்பட்ட நடைமுறைகள்.

புதிய ஒன்றை உருவாக்குதல் மற்றும் ஏற்கனவே உள்ளதை மாற்றுதல் சேமிக்கப்பட்ட செயல்முறைபின்வரும் கட்டளையைப் பயன்படுத்தி முடிந்தது:

<определение_процедуры>::= (உருவாக்கு | மாற்றம் )செயல்முறை_பெயர் [;எண்] [(@parameter_name data_type ) [=இயல்புநிலை] ][,...n] AS sql_operator [...n]

இந்த கட்டளையின் அளவுருக்களைப் பார்ப்போம்.

sp_ , # , ## முன்னொட்டுகளைப் பயன்படுத்தி, உருவாக்கப்பட்ட செயல்முறையை ஒரு அமைப்பு அல்லது தற்காலிகமாக வரையறுக்கலாம். கட்டளை தொடரியலில் இருந்து நீங்கள் பார்க்க முடியும் என, உருவாக்கப்பட்ட செயல்முறையை வைத்திருக்கும் உரிமையாளரின் பெயரையும், அது அமைந்துள்ள தரவுத்தளத்தின் பெயரையும் குறிப்பிட அனுமதிக்கப்படவில்லை. இவ்வாறு, உருவாக்கப்பட்டவை வைப்பதற்காக சேமிக்கப்பட்ட செயல்முறைஒரு குறிப்பிட்ட தரவுத்தளத்தில், அந்த தரவுத்தளத்தின் சூழலில் CREATE PROCEDURE கட்டளையை வழங்க வேண்டும். உடலில் இருந்து திரும்பும் போது சேமிக்கப்பட்ட செயல்முறைசுருக்கப்பட்ட பெயர்கள் ஒரே தரவுத்தளத்தின் பொருள்களுக்குப் பயன்படுத்தப்படலாம், அதாவது தரவுத்தள பெயரைக் குறிப்பிடாமல். பிற தரவுத்தளங்களில் உள்ள பொருட்களை நீங்கள் அணுக வேண்டியிருக்கும் போது, ​​தரவுத்தள பெயரைக் குறிப்பிடுவது கட்டாயமாகும்.

பெயரில் உள்ள எண் அடையாள எண் சேமிக்கப்பட்ட செயல்முறை, இது நடைமுறைகளின் குழுவில் தனித்துவமாக அடையாளப்படுத்துகிறது. நிர்வாகத்தின் எளிமைக்காக, நடைமுறைகள் தர்க்கரீதியாக ஒரே மாதிரியானவை சேமிக்கப்பட்ட நடைமுறைகள்ஒரே பெயரைக் கொடுத்து வெவ்வேறு அடையாள எண்களைக் கொடுத்து குழுவாக்கலாம்.

உருவாக்கப்பட்ட உள்ளீடு மற்றும் வெளியீட்டு தரவை மாற்ற சேமிக்கப்பட்ட செயல்முறைஅளவுருக்கள் பயன்படுத்தப்படலாம், அவற்றின் பெயர்கள், உள்ளூர் மாறிகளின் பெயர்களைப் போலவே, @ குறியீட்டில் தொடங்க வேண்டும். ஒன்று சேமிக்கப்பட்ட செயல்முறைகாற்புள்ளிகளால் பிரிக்கப்பட்ட பல அளவுருக்களை நீங்கள் குறிப்பிடலாம். ஒரு செயல்முறையின் அமைப்பு, இந்த நடைமுறையின் அளவுருக்களின் பெயர்களுடன் ஒத்துப்போகும் உள்ளூர் மாறிகளைப் பயன்படுத்தக்கூடாது.

தொடர்புடைய தரவு வகையைத் தீர்மானிக்க சேமிக்கப்பட்ட செயல்முறை அளவுரு, பயனர் வரையறுத்தவை உட்பட எந்த SQL தரவு வகைகளும் பொருத்தமானவை. இருப்பினும், CURSOR தரவு வகையை மட்டுமே பயன்படுத்த முடியும் வெளியீட்டு அளவுரு சேமிக்கப்பட்ட செயல்முறை, அதாவது OUTPUT முக்கிய சொல்லைக் குறிப்பிடுகிறது.

OUTPUT திறவுச்சொல்லின் இருப்பு என்பது தொடர்புடைய அளவுருவானது தரவைத் தருவதாகும் சேமிக்கப்பட்ட செயல்முறை. இருப்பினும், மதிப்புகளை அனுப்ப அளவுரு பொருத்தமானது அல்ல என்று இது அர்த்தப்படுத்துவதில்லை சேமிக்கப்பட்ட செயல்முறை. OUTPUT முக்கிய சொல்லைக் குறிப்பிடுவது சேவையகத்தை வெளியேறும்படி அறிவுறுத்துகிறது சேமிக்கப்பட்ட செயல்முறைஅளவுருவின் மதிப்பாக செயல்முறையை அழைக்கும் போது குறிப்பிடப்பட்ட உள்ளூர் மாறிக்கு அளவுருவின் தற்போதைய மதிப்பை ஒதுக்கவும். OUTPUT முக்கிய சொல்லைக் குறிப்பிடும்போது, ​​செயல்முறையை அழைக்கும்போது தொடர்புடைய அளவுருவின் மதிப்பை உள்ளூர் மாறியைப் பயன்படுத்தி மட்டுமே அமைக்க முடியும் என்பதை நினைவில் கொள்ளவும். வழக்கமான அளவுருக்களுக்கு அனுமதிக்கப்படும் எந்த வெளிப்பாடுகள் அல்லது மாறிலிகள் அனுமதிக்கப்படாது.

VARYING முக்கிய வார்த்தை இணைந்து பயன்படுத்தப்படுகிறது

சேமிக்கப்பட்ட நடைமுறைகளின் கருத்து வரையறுக்கப்பட்டுள்ளது. அளவுருக்களுடன் சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்குதல், மாற்றியமைத்தல் மற்றும் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகளை வழங்குகிறது. உள்ளீடு மற்றும் வெளியீட்டு அளவுருக்களின் வரையறை கொடுக்கப்பட்டுள்ளது. சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்கி அழைப்பதற்கான எடுத்துக்காட்டுகள் வழங்கப்பட்டுள்ளன.

சேமிக்கப்பட்ட செயல்முறையின் கருத்து

சேமிக்கப்பட்ட நடைமுறைகள்ஒன்றோடொன்று இணைக்கப்பட்ட SQL அறிக்கைகளின் குழுக்கள் ஆகும், இதன் பயன்பாடு புரோகிராமரின் வேலையை எளிதாகவும் நெகிழ்வாகவும் ஆக்குகிறது. சேமிக்கப்பட்ட செயல்முறைதனிப்பட்ட SQL அறிக்கைகளின் வரிசையை விட பெரும்பாலும் மிகவும் எளிமையானது. சேமிக்கப்பட்ட நடைமுறைகள் என்பது ஒன்று அல்லது அதற்கு மேற்பட்ட SQL அறிக்கைகள் அல்லது செயல்பாடுகளைக் கொண்ட கட்டளைகளின் தொகுப்பாகும் மற்றும் தரவுத்தளத்தில் தொகுக்கப்பட்ட வடிவத்தில் சேமிக்கப்படுகிறது. தரவுத்தளத்தில் செயல்படுத்தல் சேமிக்கப்பட்ட நடைமுறைகள்தனிப்பட்ட SQL அறிக்கைகளுக்குப் பதிலாக, பயனருக்கு பின்வரும் நன்மைகள் உள்ளன:

  • தேவையான ஆபரேட்டர்கள் ஏற்கனவே தரவுத்தளத்தில் உள்ளனர்;
  • அவர்கள் அனைவரும் மேடையைக் கடந்தனர் பாகுபடுத்துதல்மற்றும் இயங்கக்கூடிய வடிவத்தில் உள்ளன; முன் சேமிக்கப்பட்ட நடைமுறையை செயல்படுத்துதல் SQL சேவையகம் அதற்கான செயல்படுத்தல் திட்டத்தை உருவாக்குகிறது, அதன் தேர்வுமுறை மற்றும் தொகுப்பை செய்கிறது;
  • சேமிக்கப்பட்ட நடைமுறைகள்ஆதரவு மட்டு நிரலாக்கம், அவை பெரிய பணிகளை சுயாதீனமான, சிறிய மற்றும் எளிதாக நிர்வகிக்கக்கூடிய பகுதிகளாக உடைக்க உங்களை அனுமதிக்கின்றன;
  • சேமிக்கப்பட்ட நடைமுறைகள்மற்றவர்களுக்கு காரணமாக இருக்கலாம் சேமிக்கப்பட்ட நடைமுறைகள்மற்றும் செயல்பாடுகள்;
  • சேமிக்கப்பட்ட நடைமுறைகள்பிற வகையான பயன்பாட்டு நிரல்களிலிருந்து அழைக்கப்படலாம்;
  • பொதுவாக, சேமிக்கப்பட்ட நடைமுறைகள்தனிப்பட்ட அறிக்கைகளின் வரிசையை விட வேகமாக செயல்படுத்தவும்;
  • சேமிக்கப்பட்ட நடைமுறைகள்பயன்படுத்த எளிதானது: அவை பத்து அல்லது நூற்றுக்கணக்கான கட்டளைகளைக் கொண்டிருக்கலாம், ஆனால் அவற்றை இயக்க நீங்கள் விரும்பிய ஒன்றின் பெயரைக் குறிப்பிட வேண்டும். சேமிக்கப்பட்ட செயல்முறை. கிளையண்டிலிருந்து சேவையகத்திற்கு அனுப்பப்பட்ட கோரிக்கையின் அளவைக் குறைக்க இது உங்களை அனுமதிக்கிறது, எனவே பிணையத்தில் சுமை.

நடைமுறைகளை அவை செயல்படுத்தப்படும் அதே இடத்தில் சேமிப்பது நெட்வொர்க்கில் பரிமாற்றப்படும் தரவின் அளவைக் குறைக்கிறது மற்றும் ஒட்டுமொத்த கணினி செயல்திறனை மேம்படுத்துகிறது. விண்ணப்பம் சேமிக்கப்பட்ட நடைமுறைகள்மென்பொருள் அமைப்புகளின் பராமரிப்பு மற்றும் அவற்றில் மாற்றங்களைச் செய்வதை எளிதாக்குகிறது. பொதுவாக, விதிகள் மற்றும் தரவு செயலாக்க வழிமுறைகள் வடிவில் உள்ள அனைத்து ஒருமைப்பாடு கட்டுப்பாடுகளும் தரவுத்தள சேவையகத்தில் செயல்படுத்தப்பட்டு இறுதி பயன்பாட்டிற்கு ஒரு தொகுப்பாகக் கிடைக்கும். சேமிக்கப்பட்ட நடைமுறைகள், இது தரவு செயலாக்க இடைமுகத்தைக் குறிக்கிறது. தரவு ஒருமைப்பாடு மற்றும் பாதுகாப்பு நோக்கங்களுக்காக, பயன்பாடு பொதுவாக தரவுக்கான நேரடி அணுகலைப் பெறாது - அதனுடன் அனைத்து வேலைகளும் குறிப்பிட்ட அழைப்பதன் மூலம் மேற்கொள்ளப்படுகின்றன. சேமிக்கப்பட்ட நடைமுறைகள்.

இந்த அணுகுமுறை தரவு செயலாக்க வழிமுறைகளை மாற்றுவதை மிகவும் எளிதாக்குகிறது, இது அனைத்து நெட்வொர்க் பயனர்களுக்கும் உடனடியாகக் கிடைக்கும், மேலும் பயன்பாட்டில் மாற்றங்களைச் செய்யாமல் கணினியை விரிவாக்கும் திறனை வழங்குகிறது: மாற்றவும் சேமிக்கப்பட்ட செயல்முறைதரவுத்தள சேவையகத்தில். டெவலப்பர் பயன்பாட்டை மீண்டும் தொகுக்கவோ, அதன் நகல்களை உருவாக்கவோ அல்லது புதிய பதிப்பில் பணிபுரிய பயனர்களுக்கு அறிவுறுத்தவோ தேவையில்லை. கணினியில் மாற்றங்கள் செய்யப்பட்டுள்ளன என்பது பயனர்களுக்குத் தெரியாது.

சேமிக்கப்பட்ட நடைமுறைகள்அட்டவணைகள் அல்லது வேறு எந்த தரவுத்தளப் பொருட்களிலிருந்தும் சுயாதீனமாக உள்ளன. அவர்கள் கிளையன்ட் திட்டத்தால் அழைக்கப்படுகிறார்கள், மற்றொன்று சேமிக்கப்பட்ட செயல்முறைஅல்லது தூண்டுதல். டெவலப்பர் அணுகல் உரிமைகளை நிர்வகிக்க முடியும் சேமிக்கப்பட்ட செயல்முறை, அதை செயல்படுத்த அனுமதித்தல் அல்லது தடை செய்தல். குறியீட்டை மாற்றவும் சேமிக்கப்பட்ட செயல்முறைஅதன் உரிமையாளர் அல்லது நிலையான தரவுத்தள பங்கின் உறுப்பினருக்கு மட்டுமே அனுமதிக்கப்படுகிறது. தேவைப்பட்டால், அதன் உரிமையை ஒரு பயனரிடமிருந்து மற்றொருவருக்கு மாற்றலாம்.

MS SQL சர்வர் சூழலில் சேமிக்கப்பட்ட நடைமுறைகள்

SQL சேவையகத்துடன் பணிபுரியும் போது, ​​பயனர்கள் சில செயல்களைச் செயல்படுத்தும் தங்கள் சொந்த நடைமுறைகளை உருவாக்கலாம். சேமிக்கப்பட்ட நடைமுறைகள்முழு அளவிலான தரவுத்தள பொருள்கள், எனவே அவை ஒவ்வொன்றும் ஒரு குறிப்பிட்ட தரவுத்தளத்தில் சேமிக்கப்படும். நேரடி அழைப்பு சேமிக்கப்பட்ட செயல்முறைசெயல்முறை அமைந்துள்ள தரவுத்தளத்தின் சூழலில் இது மேற்கொள்ளப்பட்டால் மட்டுமே சாத்தியமாகும்.

சேமிக்கப்பட்ட நடைமுறைகளின் வகைகள்

SQL சர்வர் பல வகைகளைக் கொண்டுள்ளது சேமிக்கப்பட்ட நடைமுறைகள்.

  • அமைப்பு சேமிக்கப்பட்ட நடைமுறைகள்பல்வேறு நிர்வாக நடவடிக்கைகளை மேற்கொள்ள வடிவமைக்கப்பட்டுள்ளது. ஏறக்குறைய அனைத்து சேவையக நிர்வாக நடவடிக்கைகளும் அவர்களின் உதவியுடன் செய்யப்படுகின்றன. அமைப்புமுறை என்று சொல்லலாம் சேமிக்கப்பட்ட நடைமுறைகள்சிஸ்டம் டேபிள்களுடன் பணிபுரியும் இடைமுகம் ஆகும், இது இறுதியில் பயனர் மற்றும் கணினி தரவுத்தளங்களின் சிஸ்டம் டேபிள்களில் இருந்து தரவை மாற்றுவது, சேர்த்தல், நீக்குவது மற்றும் மீட்டெடுக்கிறது. அமைப்பு சேமிக்கப்பட்ட நடைமுறைகள் sp_ முன்னொட்டு உள்ளது, கணினி தரவுத்தளத்தில் சேமிக்கப்படும் மற்றும் வேறு எந்த தரவுத்தளத்தின் சூழலில் அழைக்கப்படலாம்.
  • தனிப்பயன் சேமிக்கப்பட்ட நடைமுறைகள்சில நடவடிக்கைகளை செயல்படுத்தவும். சேமிக்கப்பட்ட நடைமுறைகள்- ஒரு முழு அளவிலான தரவுத்தள பொருள். இதன் விளைவாக, ஒவ்வொன்றும் சேமிக்கப்பட்ட செயல்முறைஅது செயல்படுத்தப்படும் ஒரு குறிப்பிட்ட தரவுத்தளத்தில் அமைந்துள்ளது.
  • தற்காலிகமானது சேமிக்கப்பட்ட நடைமுறைகள்சிறிது நேரம் மட்டுமே இருக்கும், அதன் பிறகு அவை தானாகவே சர்வரால் அழிக்கப்படும். அவை உள்ளூர் மற்றும் உலகளாவிய என பிரிக்கப்பட்டுள்ளன. உள்ளூர் தற்காலிக சேமிக்கப்பட்ட நடைமுறைகள்அவை உருவாக்கப்பட்ட இணைப்பிலிருந்து மட்டுமே அழைக்க முடியும். அத்தகைய செயல்முறையை உருவாக்கும் போது, ​​நீங்கள் அதற்கு ஒரு # எழுத்தில் தொடங்கும் பெயரைக் கொடுக்க வேண்டும். எல்லா தற்காலிக பொருட்களையும் போல, சேமிக்கப்பட்ட நடைமுறைகள்பயனர் துண்டிக்கப்படும் போது அல்லது சேவையகம் மறுதொடக்கம் செய்யப்படும் போது அல்லது நிறுத்தப்படும் போது இந்த வகை தானாகவே நீக்கப்படும். உலகளாவிய தற்காலிகமானது சேமிக்கப்பட்ட நடைமுறைகள்அதே நடைமுறையைக் கொண்ட சேவையகத்திலிருந்து எந்த இணைப்புகளுக்கும் கிடைக்கும். அதை வரையறுக்க, அதற்கு ## என்ற எழுத்துகளுடன் தொடங்கும் பெயரைக் கொடுங்கள். சேவையகம் மறுதொடக்கம் செய்யப்படும்போது அல்லது நிறுத்தப்படும்போது அல்லது அவை உருவாக்கப்பட்ட சூழலில் இணைப்பு மூடப்படும்போது இந்த நடைமுறைகள் நீக்கப்படும்.

சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்கவும், மாற்றவும் மற்றும் நீக்கவும்

உருவாக்கம் சேமிக்கப்பட்ட செயல்முறைபின்வரும் சிக்கல்களைத் தீர்ப்பதை உள்ளடக்கியது:

  • உருவாக்கப்பட்ட வகையை தீர்மானித்தல் சேமிக்கப்பட்ட செயல்முறை: தற்காலிக அல்லது வழக்கம். கூடுதலாக, நீங்கள் உங்கள் சொந்த அமைப்பை உருவாக்கலாம் சேமிக்கப்பட்ட செயல்முறை, sp_ உடன் முன்னொட்டாக ஒரு பெயரைக் கொடுத்து கணினி தரவுத்தளத்தில் வைப்பது. இந்த செயல்முறை எந்த உள்ளூர் சர்வர் தரவுத்தளத்தின் சூழலில் கிடைக்கும்;
  • அணுகல் உரிமைகளைத் திட்டமிடுதல். உருவாக்கும் போது சேமிக்கப்பட்ட செயல்முறைதரவுத்தள பொருள்களை உருவாக்கிய பயனருக்கு அதே அணுகல் உரிமைகள் இருக்கும் என்பதை கணக்கில் எடுத்துக்கொள்ள வேண்டும்;
  • வரையறை சேமிக்கப்பட்ட செயல்முறை அளவுருக்கள். பெரும்பாலான நிரலாக்க மொழிகளில் உள்ள நடைமுறைகளைப் போலவே, சேமிக்கப்பட்ட நடைமுறைகள்உள்ளீடு மற்றும் வெளியீட்டு அளவுருக்கள் இருக்கலாம்;
  • குறியீடு வளர்ச்சி சேமிக்கப்பட்ட செயல்முறை. செயல்முறை குறியீட்டில் மற்றவர்களுக்கு அழைப்புகள் உட்பட எந்த SQL கட்டளைகளின் வரிசையும் இருக்கலாம் சேமிக்கப்பட்ட நடைமுறைகள்.

புதிய ஒன்றை உருவாக்குதல் மற்றும் ஏற்கனவே உள்ளதை மாற்றுதல் சேமிக்கப்பட்ட செயல்முறைபின்வரும் கட்டளையைப் பயன்படுத்தி முடிந்தது:

<определение_процедуры>::= (உருவாக்கு | மாற்று ) PROC process_name [;number] [(@parameter_name data_type ) [=default] ][,...n] AS sql_operator [...n]

இந்த கட்டளையின் அளவுருக்களைப் பார்ப்போம்.

sp_ , # , ## முன்னொட்டுகளைப் பயன்படுத்தி, உருவாக்கப்பட்ட செயல்முறையை ஒரு அமைப்பு அல்லது தற்காலிகமாக வரையறுக்கலாம். கட்டளை தொடரியலில் இருந்து நீங்கள் பார்க்க முடியும் என, உருவாக்கப்பட்ட செயல்முறையை வைத்திருக்கும் உரிமையாளரின் பெயரையும், அது அமைந்துள்ள தரவுத்தளத்தின் பெயரையும் குறிப்பிட அனுமதிக்கப்படவில்லை. இவ்வாறு, உருவாக்கப்பட்டவை வைப்பதற்காக சேமிக்கப்பட்ட செயல்முறைஒரு குறிப்பிட்ட தரவுத்தளத்தில், அந்த தரவுத்தளத்தின் சூழலில் CREATE PROCEDURE கட்டளையை வழங்க வேண்டும். உடலில் இருந்து திரும்பும் போது சேமிக்கப்பட்ட செயல்முறைசுருக்கப்பட்ட பெயர்கள் ஒரே தரவுத்தளத்தின் பொருள்களுக்குப் பயன்படுத்தப்படலாம், அதாவது தரவுத்தள பெயரைக் குறிப்பிடாமல். பிற தரவுத்தளங்களில் உள்ள பொருட்களை நீங்கள் அணுக வேண்டியிருக்கும் போது, ​​தரவுத்தள பெயரைக் குறிப்பிடுவது கட்டாயமாகும்.

பெயரில் உள்ள எண் அடையாள எண் சேமிக்கப்பட்ட செயல்முறை, இது நடைமுறைகளின் குழுவில் தனித்துவமாக அடையாளப்படுத்துகிறது. நிர்வாகத்தின் எளிமைக்காக, நடைமுறைகள் தர்க்கரீதியாக ஒரே மாதிரியானவை சேமிக்கப்பட்ட நடைமுறைகள்ஒரே பெயரைக் கொடுத்து வெவ்வேறு அடையாள எண்களைக் கொடுத்து குழுவாக்கலாம்.

உருவாக்கப்பட்ட உள்ளீடு மற்றும் வெளியீட்டு தரவை மாற்ற சேமிக்கப்பட்ட செயல்முறைஅளவுருக்கள் பயன்படுத்தப்படலாம், அவற்றின் பெயர்கள், உள்ளூர் மாறிகளின் பெயர்களைப் போலவே, @ குறியீட்டில் தொடங்க வேண்டும். ஒன்று சேமிக்கப்பட்ட செயல்முறைகாற்புள்ளிகளால் பிரிக்கப்பட்ட பல அளவுருக்களை நீங்கள் குறிப்பிடலாம். ஒரு செயல்முறையின் அமைப்பு, இந்த நடைமுறையின் அளவுருக்களின் பெயர்களுடன் ஒத்துப்போகும் உள்ளூர் மாறிகளைப் பயன்படுத்தக்கூடாது.

தொடர்புடைய தரவு வகையைத் தீர்மானிக்க சேமிக்கப்பட்ட செயல்முறை அளவுரு, பயனர் வரையறுத்தவை உட்பட எந்த SQL தரவு வகைகளும் பொருத்தமானவை. இருப்பினும், CURSOR தரவு வகையை மட்டுமே பயன்படுத்த முடியும் வெளியீட்டு அளவுரு சேமிக்கப்பட்ட செயல்முறை, அதாவது OUTPUT முக்கிய சொல்லைக் குறிப்பிடுகிறது.

OUTPUT திறவுச்சொல்லின் இருப்பு என்பது தொடர்புடைய அளவுருவானது தரவைத் தருவதாகும் சேமிக்கப்பட்ட செயல்முறை. இருப்பினும், மதிப்புகளை அனுப்ப அளவுரு பொருத்தமானது அல்ல என்று இது அர்த்தப்படுத்துவதில்லை சேமிக்கப்பட்ட செயல்முறை. OUTPUT முக்கிய சொல்லைக் குறிப்பிடுவது சேவையகத்தை வெளியேறும்படி அறிவுறுத்துகிறது சேமிக்கப்பட்ட செயல்முறைஅளவுருவின் மதிப்பாக செயல்முறையை அழைக்கும் போது குறிப்பிடப்பட்ட உள்ளூர் மாறிக்கு அளவுருவின் தற்போதைய மதிப்பை ஒதுக்கவும். OUTPUT முக்கிய சொல்லைக் குறிப்பிடும்போது, ​​செயல்முறையை அழைக்கும்போது தொடர்புடைய அளவுருவின் மதிப்பை உள்ளூர் மாறியைப் பயன்படுத்தி மட்டுமே அமைக்க முடியும் என்பதை நினைவில் கொள்ளவும். வழக்கமான அளவுருக்களுக்கு அனுமதிக்கப்படும் எந்த வெளிப்பாடுகள் அல்லது மாறிலிகள் அனுமதிக்கப்படாது.

CURSOR வகையைச் சேர்ந்த OUTPUT அளவுருவுடன் இணைந்து VARYING திறவுச்சொல் பயன்படுத்தப்படுகிறது. என்று தீர்மானிக்கிறது வெளியீட்டு அளவுருஒரு முடிவு இருக்கும்.

DEFAULT முக்கிய சொல் தொடர்புடைய மதிப்பைக் குறிக்கிறது இயல்புநிலை அளவுரு. எனவே, ஒரு செயல்முறையை அழைக்கும்போது, ​​தொடர்புடைய அளவுருவின் மதிப்பை நீங்கள் வெளிப்படையாகக் குறிப்பிட வேண்டியதில்லை.

வினவல் செயல்படுத்தல் திட்டம் மற்றும் தொகுக்கப்பட்ட குறியீட்டை சர்வர் தேக்ககப்படுத்துவதால், அடுத்த முறை செயல்முறை அழைக்கப்படும் போது, ​​ஆயத்த மதிப்புகள் பயன்படுத்தப்படும். இருப்பினும், சில சந்தர்ப்பங்களில் நடைமுறைக் குறியீட்டை மீண்டும் தொகுக்க வேண்டியது அவசியம். RECOMPILE முக்கிய சொல்லைக் குறிப்பிடுவது, செயல்படுத்தும் திட்டத்தை உருவாக்க கணினிக்கு அறிவுறுத்துகிறது சேமிக்கப்பட்ட செயல்முறைஅவள் அழைக்கும் ஒவ்வொரு முறையும்.

தரவை நகலெடுக்கும் போது மற்றும் உருவாக்கப்பட்டதை இயக்கும் போது FOR REPLICATION அளவுரு தேவைப்படுகிறது சேமிக்கப்பட்ட செயல்முறைவெளியீட்டிற்கான கட்டுரையாக.

குறியீட்டை குறியாக்கம் செய்ய என்கிரிப்ஷன் திறவுச்சொல் சேவையகத்திற்கு அறிவுறுத்துகிறது சேமிக்கப்பட்ட செயல்முறை, இது வேலையைச் செயல்படுத்தும் தனியுரிம வழிமுறைகளைப் பயன்படுத்துவதற்கு எதிராக பாதுகாப்பை வழங்க முடியும் சேமிக்கப்பட்ட செயல்முறை.

AS முக்கிய சொல் உடலின் தொடக்கத்தில் வைக்கப்பட்டுள்ளது சேமிக்கப்பட்ட செயல்முறை, அதாவது SQL கட்டளைகளின் தொகுப்பு, அதன் உதவியுடன் இந்த அல்லது அந்த நடவடிக்கை செயல்படுத்தப்படும். செயல்முறையின் உடலில், கிட்டத்தட்ட அனைத்து SQL கட்டளைகளையும் பயன்படுத்தலாம், பரிவர்த்தனைகளை அறிவிக்கலாம், பூட்டுகளை அமைக்கலாம் மற்றும் பிறவற்றை அழைக்கலாம். சேமிக்கப்பட்ட நடைமுறைகள். இருந்து வெளியேறு சேமிக்கப்பட்ட செயல்முறை RETURN கட்டளையைப் பயன்படுத்தி செய்ய முடியும்.

சேமிக்கப்பட்ட செயல்முறையை அகற்றுதல்கட்டளை மூலம் செயல்படுத்தப்பட்டது:

டிராப் செயல்முறை (செயல்முறை_பெயர்) [,...n]

சேமிக்கப்பட்ட நடைமுறையை செயல்படுத்துதல்

க்கு சேமிக்கப்பட்ட நடைமுறையை செயல்படுத்தவும்பயன்படுத்தப்படும் கட்டளை:

[[ EXEC [ UTE] process_name [;number] [[@parameter_name=](மதிப்பு | @variable_name) |][,...n]

அழைப்பு என்றால் சேமிக்கப்பட்ட செயல்முறைதொகுப்பில் உள்ள ஒரே கட்டளை அல்ல, EXECUTE கட்டளையின் இருப்பு தேவைப்படுகிறது. மேலும், மற்றொரு செயல்முறை அல்லது தூண்டுதலின் உடலில் இருந்து ஒரு செயல்முறையை அழைக்க இந்த கட்டளை தேவைப்படுகிறது.

ஒரு செயல்முறையை அழைக்கும்போது OUTPUT முக்கிய சொல்லைப் பயன்படுத்துவது எப்போது அறிவிக்கப்பட்ட அளவுருக்களுக்கு மட்டுமே அனுமதிக்கப்படுகிறது ஒரு நடைமுறையை உருவாக்குதல் OUTPUT முக்கிய சொல்லுடன்.

ஒரு செயல்முறையை அழைக்கும் போது ஒரு அளவுருவிற்கு DEFAULT முக்கிய வார்த்தை குறிப்பிடப்பட்டால், அது பயன்படுத்தப்படும் இயல்புநிலை மதிப்பு. இயற்கையாகவே, DEFAULT என்ற குறிப்பிடப்பட்ட சொல் அது வரையறுக்கப்பட்ட அளவுருக்களுக்கு மட்டுமே அனுமதிக்கப்படுகிறது. இயல்புநிலை மதிப்பு.

EXECUTE கட்டளையின் தொடரியல் ஒரு செயல்முறையை அழைக்கும்போது அளவுரு பெயர்களைத் தவிர்க்கலாம் என்பதைக் காட்டுகிறது. இருப்பினும், இந்த வழக்கில், பயனர் அளவுருக்களுக்கான மதிப்புகளை அவை பட்டியலிடப்பட்ட அதே வரிசையில் குறிப்பிட வேண்டும். ஒரு நடைமுறையை உருவாக்குதல். அளவுருவுக்கு ஒதுக்கவும் இயல்புநிலை மதிப்பு, பட்டியலிடும்போது நீங்கள் அதைத் தவிர்க்க முடியாது. அது வரையறுக்கப்பட்ட அளவுருக்களை நீங்கள் தவிர்க்க விரும்பினால் இயல்புநிலை மதிப்பு, அழைக்கும் போது அளவுரு பெயர்களை வெளிப்படையாகக் குறிப்பிடுவது போதுமானது சேமிக்கப்பட்ட செயல்முறை. மேலும், இந்த வழியில் நீங்கள் எந்த வரிசையிலும் அளவுருக்கள் மற்றும் அவற்றின் மதிப்புகளை பட்டியலிடலாம்.

ஒரு செயல்முறையை அழைக்கும்போது, ​​மதிப்புகள் கொண்ட அளவுரு பெயர்கள் அல்லது அளவுரு பெயர் இல்லாத மதிப்புகள் மட்டுமே குறிப்பிடப்படுகின்றன என்பதை நினைவில் கொள்க. அவற்றை இணைப்பது அனுமதிக்கப்படாது.

எடுத்துக்காட்டு 12.1. அளவுருக்கள் இல்லாத செயல்முறை. இவானோவ் வாங்கிய பொருட்களின் பெயர்கள் மற்றும் செலவுகளைப் பெறுவதற்கான நடைமுறையை உருவாக்கவும்.

தயாரிப்பின் பெயர், தயாரிப்பு. விலை* பரிவர்த்தனையின் அளவு, வாடிக்கையாளர் tomerCode WHERE வாடிக்கையாளர் .கடைசி பெயர்='இவானோவ்' எடுத்துக்காட்டு 12.1. இவானோவ் வாங்கிய பொருட்களின் பெயர்கள் மற்றும் மதிப்புகளைப் பெறுவதற்கான நடைமுறை.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

EXEC my_proc1 அல்லது my_proc1

செயல்முறை தரவு தொகுப்பை வழங்குகிறது.

எடுத்துக்காட்டு 12.2. அளவுருக்கள் இல்லாத செயல்முறை. முதல்தரப் பொருட்களின் விலையை 10% குறைக்கும் நடைமுறையை உருவாக்கவும்.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

EXEC my_proc2 அல்லது my_proc2

செயல்முறை எந்த தரவையும் தராது.

எடுத்துக்காட்டு 12.3. உள்ளீட்டு அளவுருவுடன் செயல்முறை. கொடுக்கப்பட்ட வாடிக்கையாளரால் வாங்கப்பட்ட பொருட்களின் பெயர்கள் மற்றும் விலைகளைப் பெறுவதற்கான நடைமுறையை உருவாக்கவும்.

தயாரிப்பின் பெயர், பொருள் வாடிக்கையாளர் குறியீடு = பரிவர்த்தனை. ClientCode Client.LastName=@k எடுத்துக்காட்டு 12.3. கொடுக்கப்பட்ட வாடிக்கையாளரால் வாங்கப்பட்ட பொருட்களின் பெயர்கள் மற்றும் விலைகளைப் பெறுவதற்கான ஒரு செயல்முறை.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

EXEC my_proc3 "Ivanov" அல்லது my_proc3 @k="Ivanov"

எடுத்துக்காட்டு 12.4.. குறிப்பிட்ட % க்கு ஏற்ப கொடுக்கப்பட்ட வகையின் ஒரு பொருளின் விலையை குறைக்க ஒரு நடைமுறையை உருவாக்கவும்.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

EXEC my_proc4 "Waffles",0.05 அல்லது EXEC my_proc4 @t="Waffles", @p=0.05

எடுத்துக்காட்டு 12.5. உள்ளீட்டு அளவுருக்கள் கொண்ட செயல்முறைமற்றும் இயல்புநிலை மதிப்புகள். குறிப்பிட்ட % க்கு ஏற்ப கொடுக்கப்பட்ட வகையின் ஒரு பொருளின் விலையை குறைக்க ஒரு நடைமுறையை உருவாக்கவும்.

PROC ஐ உருவாக்கவும் my_proc5 @t VARCHAR(20)='Candy`, @p FLOAT=0.1 என புதுப்பிப்பு தயாரிப்பு நிர்ணயம் விலை=விலை*(1-@p) எங்கே வகை=@t எடுத்துக்காட்டு 12.5. உள்ளீட்டு அளவுருக்கள் மற்றும் இயல்புநிலை மதிப்புகளுடன் செயல்முறை. குறிப்பிட்ட % க்கு ஏற்ப கொடுக்கப்பட்ட வகையின் ஒரு பொருளின் விலையை குறைக்க ஒரு நடைமுறையை உருவாக்கவும்.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

EXEC my_proc5 "Waffles",0.05 அல்லது EXEC my_proc5 @t="Waffles", @p=0.05 அல்லது EXEC my_proc5 @p=0.05

இந்த வழக்கில், மிட்டாய்களின் விலை குறைக்கப்படுகிறது (செயல்முறையை அழைக்கும் போது வகை மதிப்பு குறிப்பிடப்படவில்லை மற்றும் முன்னிருப்பாக எடுக்கப்படுகிறது).

பிந்தைய வழக்கில், செயல்முறையை அழைக்கும்போது இரண்டு அளவுருக்கள் (வகை மற்றும் சதவீதம்) குறிப்பிடப்படவில்லை, அவற்றின் மதிப்புகள் முன்னிருப்பாக எடுக்கப்படுகின்றன.

எடுத்துக்காட்டு 12.6. உள்ளீடு மற்றும் வெளியீட்டு அளவுருக்கள் கொண்ட செயல்முறை. ஒரு குறிப்பிட்ட மாதத்தில் விற்கப்படும் பொருட்களின் மொத்த விலையை தீர்மானிக்க ஒரு நடைமுறையை உருவாக்கவும்.

ப்ரோக்டை உருவாக்கு my_proc6 @m INT. பரிவர்த்தனை.தேதி)=@m எடுத்துக்காட்டு 12.6. உள்ளீடு மற்றும் வெளியீட்டு அளவுருக்கள் கொண்ட செயல்முறை. ஒரு குறிப்பிட்ட மாதத்தில் விற்கப்படும் பொருட்களின் மொத்த விலையை தீர்மானிக்க ஒரு நடைமுறையை உருவாக்கவும்.

க்கு செயல்முறைக்கான அணுகல்நீங்கள் கட்டளைகளைப் பயன்படுத்தலாம்:

அறிவிக்கவும் @st FLOAT EXEC my_proc6 1,@st அவுட்புட் தேர்வு @st

இந்த கட்டளைகளின் தொகுதி ஜனவரி மாதத்தில் விற்கப்படும் பொருட்களின் விலையை தீர்மானிக்க உங்களை அனுமதிக்கிறது ( உள்ளீட்டு அளவுருமாதம் 1 என குறிப்பிடப்பட்டுள்ளது).

கொடுக்கப்பட்ட பணியாளர் பணிபுரியும் நிறுவனத்தால் வாங்கப்பட்ட பொருட்களின் மொத்த அளவை தீர்மானிக்க ஒரு நடைமுறையை உருவாக்கவும்.

முதலில், பணியாளர் பணிபுரியும் நிறுவனத்தைத் தீர்மானிப்பதற்கான ஒரு நடைமுறையை உருவாக்குவோம்.

எடுத்துக்காட்டு 12.7.பயன்பாடு உள்ளமைக்கப்பட்ட நடைமுறைகள். கொடுக்கப்பட்ட பணியாளர் பணிபுரியும் நிறுவனத்தால் வாங்கப்பட்ட பொருட்களின் மொத்த அளவை தீர்மானிக்க ஒரு நடைமுறையை உருவாக்கவும்.

பின்னர் நாங்கள் ஆர்வமுள்ள நிறுவனத்தால் வாங்கப்பட்ட பொருட்களின் மொத்த அளவைக் கணக்கிடும் செயல்முறையை உருவாக்குவோம்.

ப்ரோக் உருவாக்கு my_proc8 @fam VARCHAR(20), @kol INT அவுட்புட் என அறிவிக்கவும். பரிவர்த்தனை. ClientCode GROUP by Client. நிறுவனம் Client ஐக் கொண்ட நிறுவனம் எடுத்துக்காட்டு 12.7. கொடுக்கப்பட்ட பணியாளர் பணிபுரியும் நிறுவனத்தால் வாங்கப்பட்ட பொருட்களின் மொத்த அளவை தீர்மானிக்க ஒரு நடைமுறையை உருவாக்கவும்.

கட்டளையைப் பயன்படுத்தி செயல்முறை அழைக்கப்படுகிறது:

அறிவிக்கவும்

சேமிக்கப்பட்ட செயல்முறை SQL மொழி மற்றும் செயல்முறை நீட்டிப்புகளைப் பயன்படுத்தி உருவாக்கப்பட்ட ஒரு சிறப்பு வகை பரிவர்த்தனை-SQL அறிக்கை தொகுப்பு ஆகும். ஒரு தொகுப்புக்கும் சேமிக்கப்பட்ட செயல்முறைக்கும் இடையிலான முக்கிய வேறுபாடு என்னவென்றால், பிந்தையது தரவுத்தள பொருளாக சேமிக்கப்படுகிறது. வேறு வார்த்தைகளில் கூறுவதானால், மீண்டும் மீண்டும் செய்யக்கூடிய பணிகளின் செயல்திறன் மற்றும் நிலைத்தன்மையை மேம்படுத்துவதற்காக சேமிக்கப்பட்ட நடைமுறைகள் சேவையக பக்கத்தில் சேமிக்கப்படும்.

தரவுத்தள இயந்திரம் சேமிக்கப்பட்ட நடைமுறைகள் மற்றும் கணினி நடைமுறைகளை ஆதரிக்கிறது. மற்ற எல்லா தரவுத்தளப் பொருட்களைப் போலவே சேமிக்கப்பட்ட நடைமுறைகளும் உருவாக்கப்படுகின்றன, அதாவது. DDL மொழியைப் பயன்படுத்துதல். அமைப்பு நடைமுறைகள்தரவுத்தள எஞ்சின் மூலம் வழங்கப்படுகிறது மற்றும் கணினி அட்டவணையில் தகவல்களை அணுகவும் மாற்றவும் பயன்படுத்தலாம்.

நீங்கள் ஒரு சேமிக்கப்பட்ட செயல்முறையை உருவாக்கும் போது, ​​நீங்கள் விருப்பமான அளவுருக்களின் பட்டியலை வரையறுக்கலாம். இந்த வழியில், செயல்முறை ஒவ்வொரு முறை அழைக்கப்படும்போதும் பொருத்தமான வாதங்களை ஏற்றுக்கொள்ளும். சேமிக்கப்பட்ட நடைமுறைகள் பயனர் வரையறுத்த தகவலைக் கொண்ட மதிப்பை அல்லது, பிழை ஏற்பட்டால், பொருத்தமான பிழைச் செய்தியை வழங்கலாம்.

தரவுத்தளத்தில் ஒரு பொருளாக சேமிக்கப்படுவதற்கு முன்பு சேமிக்கப்பட்ட செயல்முறை முன்தொகுக்கப்படுகிறது. செயல்முறையின் முன்தொகுக்கப்பட்ட வடிவம் தரவுத்தளத்தில் சேமிக்கப்பட்டு ஒவ்வொரு முறை அழைக்கப்படும்போதும் பயன்படுத்தப்படுகிறது. சேமிக்கப்பட்ட நடைமுறைகளின் இந்தப் பண்பு, (கிட்டத்தட்ட எல்லா நிகழ்வுகளிலும்) மீண்டும் மீண்டும் செயல்முறைத் தொகுப்புகளை நீக்கி, அதனுடன் தொடர்புடைய செயல்திறன் மேம்பாடுகளைப் பெறுவதன் முக்கிய நன்மையை வழங்குகிறது. சேமிக்கப்பட்ட செயல்முறைகளின் இந்த சொத்து தரவுத்தள அமைப்பு மற்றும் பயன்பாடுகளுக்கு இடையில் பரிமாற்றப்படும் தரவு அளவு மீது நேர்மறையான விளைவைக் கொண்டுள்ளது. குறிப்பாக, பல ஆயிரம் பைட்டுகள் அளவுள்ள சேமிக்கப்பட்ட செயல்முறையை அழைப்பதற்கு 50 பைட்டுகளுக்கும் குறைவாகவே தேவைப்படலாம். சேமிக்கப்பட்ட நடைமுறைகளைப் பயன்படுத்தி பல பயனர்கள் மீண்டும் மீண்டும் பணிகளைச் செய்யும்போது, ​​இந்தச் சேமிப்பின் ஒட்டுமொத்த விளைவு குறிப்பிடத்தக்கதாக இருக்கும்.

சேமிக்கப்பட்ட நடைமுறைகள் பின்வரும் நோக்கங்களுக்காகவும் பயன்படுத்தப்படலாம்:

    தரவுத்தள அட்டவணைகளுடன் செயல்களின் பதிவை உருவாக்க.

சேமிக்கப்பட்ட நடைமுறைகளைப் பயன்படுத்துவது GRANT மற்றும் REVOKE அறிக்கைகளைப் பயன்படுத்துவதன் மூலம் வழங்கப்படும் பாதுகாப்பிற்கு அப்பாற்பட்ட பாதுகாப்புக் கட்டுப்பாட்டை வழங்குகிறது, இது பயனர்களுக்கு வெவ்வேறு அணுகல் சலுகைகளை வழங்குகிறது. அடுத்த பகுதியில் விவரிக்கப்பட்டுள்ளபடி, சேமிக்கப்பட்ட செயல்முறையை செயல்படுத்துவதற்கான அங்கீகாரம், சேமிக்கப்பட்ட செயல்பாட்டில் உள்ள பொருட்களை மாற்றுவதற்கான அங்கீகாரத்திலிருந்து சுயாதீனமாக இருப்பதால் இது சாத்தியமாகும்.

டேபிள் ரைட் மற்றும்/அல்லது படிக்கும் செயல்பாடுகளின் பதிவுகளை உருவாக்கும் சேமிக்கப்பட்ட நடைமுறைகள் தரவுத்தள பாதுகாப்பிற்கான கூடுதல் விருப்பத்தை வழங்குகிறது. இத்தகைய நடைமுறைகளைப் பயன்படுத்தி, தரவுத்தள நிர்வாகி பயனர்கள் அல்லது பயன்பாட்டு நிரல்களால் தரவுத்தளத்தில் செய்யப்பட்ட மாற்றங்களைக் கண்காணிக்க முடியும்.

சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்குதல் மற்றும் செயல்படுத்துதல்

ஒரு அறிக்கையைப் பயன்படுத்தி சேமிக்கப்பட்ட நடைமுறைகள் உருவாக்கப்படுகின்றன செயல்முறையை உருவாக்கவும், பின்வரும் தொடரியல் உள்ளது:

ப்ரோக் ப்ரோக்_பெயரை உருவாக்கவும் [((@பாரம்1) வகை1 [ மாறுபடும்] [= இயல்புநிலை1] )] (, ...) தொகுப்பாக | வெளிப்புற பெயர் முறை_பெயர் தொடரியல் மரபுகள்

schema_name அளவுருவானது உருவாக்கப்பட்ட சேமிக்கப்பட்ட நடைமுறையின் உரிமையாளரால் ஒதுக்கப்படும் ஸ்கீமாவின் பெயரைக் குறிப்பிடுகிறது. proc_name அளவுரு சேமிக்கப்பட்ட செயல்முறையின் பெயரைக் குறிப்பிடுகிறது. @param1 அளவுரு என்பது ஒரு செயல்முறை அளவுரு (முறையான வாதம்), அதன் தரவு வகை வகை1 அளவுருவால் தீர்மானிக்கப்படுகிறது. லோக்கல் மாறிகள் தொகுப்பிற்குள் இருப்பது போல், செயல்முறை அளவுருக்கள் நடைமுறையில் உள்ளமைவாக இருக்கும். செயல்முறை அளவுருக்கள் என்பது அதன் பயன்பாட்டிற்கான செயல்முறைக்கு அழைப்பாளரால் அனுப்பப்படும் மதிப்புகள். default1 அளவுரு தொடர்புடைய செயல்முறை அளவுருவின் இயல்புநிலை மதிப்பைக் குறிப்பிடுகிறது. (இயல்புநிலை மதிப்பு NULL ஆகவும் இருக்கலாம்.)

அவுட்புட் விருப்பம்ஒரு செயல்முறை அளவுரு என்பது திரும்பும் அளவுரு மற்றும் சேமிக்கப்பட்ட செயல்முறையிலிருந்து அழைப்பு செயல்முறை அல்லது கணினிக்கு மதிப்பைத் திருப்பித் தர பயன்படுகிறது.

முன்னர் குறிப்பிட்டபடி, ஒரு செயல்முறையின் முன்தொகுக்கப்பட்ட வடிவம் தரவுத்தளத்தில் சேமிக்கப்பட்டு, அது அழைக்கப்படும் ஒவ்வொரு முறையும் பயன்படுத்தப்படுகிறது. சில காரணங்களால் சேமிக்கப்பட்ட செயல்முறை ஒவ்வொரு முறை அழைக்கப்படும்போதும் தொகுக்கப்பட வேண்டும் என்றால், செயல்முறையை அறிவிக்கும் போது, ​​பயன்படுத்தவும் RECOMPILE விருப்பத்துடன். RECOMPILE விருப்பத்தைப் பயன்படுத்துவது, சேமிக்கப்பட்ட நடைமுறைகளின் மிக முக்கியமான நன்மைகளில் ஒன்றை மறுக்கிறது: ஒரு தொகுப்பின் செயல்திறன் மேம்பாடு. எனவே, சேமிக்கப்பட்ட செயல்முறையால் பயன்படுத்தப்படும் தரவுத்தள பொருள்கள் அடிக்கடி மாற்றப்படும்போது மட்டுமே மறுதொகுப்பு விருப்பத்துடன் பயன்படுத்தப்பட வேண்டும்.

விதியாக செயல்படுத்தவும்சேமித்த செயல்முறையானது அழைக்கப்பட்ட பிறகு செயல்படுத்த வேண்டிய பாதுகாப்பு சூழலை வரையறுக்கிறது. இந்த சூழலை அமைப்பதன் மூலம், தரவுத்தள எஞ்சின், சேமிக்கப்பட்ட செயல்முறையால் குறிப்பிடப்பட்ட பொருட்களுக்கான அணுகல் அனுமதிகளை சரிபார்க்க பயனர் கணக்குகளின் தேர்வை கட்டுப்படுத்த முடியும்.

இயல்பாக, sysadmin நிலையான சேவையகப் பங்கு மற்றும் db_owner அல்லது db_ddladmin நிலையான தரவுத்தளப் பாத்திரங்களின் உறுப்பினர்கள் மட்டுமே CREATE PROCEDURE அறிக்கையைப் பயன்படுத்த முடியும். ஆனால் இந்த பாத்திரங்களின் உறுப்பினர்கள் அறிக்கையைப் பயன்படுத்தி மற்ற பயனர்களுக்கு இந்த உரிமையை வழங்க முடியும் கிராண்ட் உருவாக்கும் செயல்முறை.

கீழேயுள்ள எடுத்துக்காட்டு, திட்ட அட்டவணையுடன் பணிபுரிய ஒரு எளிய சேமிக்கப்பட்ட செயல்முறையை எவ்வாறு உருவாக்குவது என்பதைக் காட்டுகிறது:

மாதிரி டிபி பயன்படுத்தவும்; ப்ராஜெக்ட் செட் பட்ஜெட் = பட்ஜெட் + பட்ஜெட் * @percent/100 ஐப் புதுப்பித்து, செயல்முறையை அதிகரிக்க பட்ஜெட் (@சதவீதம் INT=5) உருவாக்கவும்;

முன்பு கூறியது போல், இரண்டு பாக்கெட்டுகளை பிரிக்க, பயன்படுத்தவும் GO வழிமுறைகள். CREATE PROCEDURE அறிக்கையை அதே தொகுப்பில் உள்ள பிற பரிவர்த்தனை-SQL அறிக்கைகளுடன் இணைக்க முடியாது. IncreaseBudget சேமிக்கப்பட்ட செயல்முறையானது @percent அளவுருவால் தீர்மானிக்கப்படும் ஒரு குறிப்பிட்ட சதவீதத்தால் அனைத்து திட்டங்களுக்கான பட்ஜெட்டையும் அதிகரிக்கிறது. செயல்முறை இயங்கும் போது இந்த வாதம் இல்லையெனில் பயன்படுத்தப்படும் இயல்புநிலை சதவீத மதிப்பையும் (5) செயல்முறை வரையறுக்கிறது.

சேமிக்கப்பட்ட நடைமுறைகள் இல்லாத அட்டவணைகளை அணுகலாம். முதலில் பொருத்தமான அட்டவணைகளை உருவாக்காமலோ அல்லது இலக்கு சேவையகத்துடன் இணைக்காமலோ செயல்முறைக் குறியீட்டைப் பிழைத்திருத்தம் செய்ய இந்தப் பண்பு உங்களை அனுமதிக்கிறது.

தற்போதைய தரவுத்தளத்தில் எப்போதும் சேமிக்கப்படும் முதன்மைச் சேமிக்கப்பட்ட நடைமுறைகளைப் போலன்றி, தற்காலிகச் சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்க முடியும், அவை எப்போதும் தற்காலிக கணினி தரவுத்தளமான tempdb இல் சேமிக்கப்படும். ஒரு தரவுத்தளத்துடன் இணைக்கும் போது ஒரு குறிப்பிட்ட குழு அறிக்கைகளை மீண்டும் மீண்டும் செயல்படுத்துவதைத் தவிர்ப்பது தற்காலிகமாக சேமிக்கப்பட்ட நடைமுறைகளை உருவாக்குவதற்கான ஒரு காரணமாக இருக்கலாம். நீங்கள் உள்ளூர் அல்லது உலகளாவிய தற்காலிக நடைமுறைகளை உருவாக்கலாம். இதைச் செய்ய, உள்ளூர் நடைமுறையின் பெயர் ஒற்றை # எழுத்துடன் (#proc_name) குறிப்பிடப்படுகிறது, மேலும் உலகளாவிய செயல்முறையின் பெயர் இரட்டை எழுத்துடன் (##proc_name) குறிப்பிடப்படுகிறது.

ஒரு உள்ளூர் தற்காலிகச் சேமிக்கப்பட்ட செயல்முறை, அதை உருவாக்கிய பயனரால் மட்டுமே செயல்படுத்தப்படும், மேலும் அது உருவாக்கப்பட்ட தரவுத்தளத்துடன் இணைக்கப்படும் போது மட்டுமே. உலகளாவிய தற்காலிக செயல்முறையானது அனைத்து பயனர்களாலும் செயல்படுத்தப்படலாம், ஆனால் அது செயல்படுத்தப்படும் கடைசி இணைப்பு (பொதுவாக செயல்முறையை உருவாக்கியவரின் இணைப்பு) முடிவடையும் வரை மட்டுமே.

சேமிக்கப்பட்ட செயல்முறையின் வாழ்க்கைச் சுழற்சி இரண்டு நிலைகளைக் கொண்டுள்ளது: அதன் உருவாக்கம் மற்றும் செயல்படுத்தல். ஒவ்வொரு செயல்முறையும் ஒரு முறை உருவாக்கப்பட்டு பல முறை செயல்படுத்தப்படுகிறது. சேமிக்கப்பட்ட செயல்முறை பயன்படுத்தி செயல்படுத்தப்படுகிறது வழிமுறைகளை செயல்படுத்தவும்ஒரு செயல்முறையின் உரிமையாளராக இருக்கும் அல்லது அந்த நடைமுறையை அணுகுவதற்கான EXECUTE சலுகையைப் பெற்ற ஒரு பயனர். EXECUTE அறிக்கையில் பின்வரும் தொடரியல் உள்ளது:

[] [@return_status =] (proc_name | @proc_name_var) ([[@parameter1 =] மதிப்பு | [@parameter1=] @variable ] | DEFAULT).. தொடரியல் மரபுகள்

return_status அளவுருவைத் தவிர, EXECUTE அறிக்கையின் அனைத்து அளவுருக்களும் CREATE PROCEDURE அறிக்கையின் அதே அளவுருக்களைப் போலவே அதே தருக்க அர்த்தத்தைக் கொண்டுள்ளன. return_status அளவுரு செயல்முறையின் திரும்பும் நிலையைச் சேமிக்கும் ஒரு முழு எண் மாறியைக் குறிப்பிடுகிறது. ஒரு நிலையான (மதிப்பு) அல்லது ஒரு உள்ளூர் மாறி (@ மாறி) பயன்படுத்தி ஒரு அளவுருவிற்கு மதிப்பை ஒதுக்கலாம். பெயரிடப்பட்ட அளவுருக்களின் மதிப்புகளின் வரிசை முக்கியமல்ல, ஆனால் பெயரிடப்படாத அளவுருக்களின் மதிப்புகள் அவை கிரியேட் செயல்முறை அறிக்கையில் வரையறுக்கப்பட்ட வரிசையில் வழங்கப்பட வேண்டும்.

இயல்புநிலை விதிசெயல்முறை வரையறையில் குறிப்பிடப்பட்ட ஒரு செயல்முறை அளவுருவின் இயல்புநிலை மதிப்பை வழங்குகிறது. இயல்புநிலை மதிப்பு வரையறுக்கப்படாத அளவுருக்கான மதிப்பை ஒரு செயல்முறை எதிர்பார்க்கும் போது மற்றும் அளவுரு காணவில்லை அல்லது DEFAULT முக்கிய வார்த்தை குறிப்பிடப்பட்டால், பிழை ஏற்படுகிறது.

EXECUTE அறிக்கை ஒரு தொகுப்பின் முதல் அறிக்கையாக இருக்கும்போது, ​​EXECUTE முக்கிய சொல்லைத் தவிர்க்கலாம். இருப்பினும், இந்த வார்த்தையை ஒவ்வொரு பாக்கெட்டிலும் சேர்ப்பது பாதுகாப்பானது. EXECUTE அறிக்கையின் பயன்பாடு கீழே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது:

மாதிரி டிபி பயன்படுத்தவும்; அதிகரிப்பு பட்ஜெட் 10 ஐ செயல்படுத்தவும்;

இந்த எடுத்துக்காட்டில் உள்ள EXECUTE அறிக்கையானது IncreaseBudget சேமிக்கப்பட்ட செயல்முறையை செயல்படுத்துகிறது, இது அனைத்து திட்டங்களின் பட்ஜெட்டை 10% அதிகரிக்கிறது.

பணியாளர் மற்றும் Works_on அட்டவணையில் தரவைச் செயலாக்க, சேமிக்கப்பட்ட செயல்முறையை எவ்வாறு உருவாக்குவது என்பதை கீழே உள்ள எடுத்துக்காட்டு காட்டுகிறது:

ModifyEmpId எடுத்துக்காட்டு செயல்முறையானது, குறிப்பு ஒருமைப்பாட்டைப் பராமரிக்கும் செயல்முறையின் ஒரு பகுதியாக சேமிக்கப்பட்ட நடைமுறைகளைப் பயன்படுத்துவதை விளக்குகிறது (இந்த விஷயத்தில் பணியாளர் மற்றும் Works_on அட்டவணைகளுக்கு இடையில்). இதேபோன்ற சேமிக்கப்பட்ட செயல்முறை ஒரு தூண்டுதல் வரையறைக்குள் பயன்படுத்தப்படலாம், இது உண்மையில் குறிப்பு ஒருமைப்பாட்டை வழங்குகிறது.

பின்வரும் உதாரணம் சேமிக்கப்பட்ட நடைமுறையில் அவுட்புட் விதியின் பயன்பாட்டைக் காட்டுகிறது:

இந்த சேமிக்கப்பட்ட செயல்முறை பின்வரும் வழிமுறைகளைப் பயன்படுத்தி செயல்படுத்தப்படலாம்:

அறிவிக்கவும் @quantityDeleteEmployee INT; Delete Employee @empId=18316, @counter=@quantityDeleteEmployee OUTPUTஐ நீக்கவும்; PRINT N"நீக்கப்பட்ட பணியாளர்கள்: " + மாற்றவும்(nvarchar(30), @quantityDeleteEmployee);

இந்த நடைமுறையானது பணியாளர் எண் @emId உடன் பணிபுரியும் திட்டங்களின் எண்ணிக்கையைக் கணக்கிடுகிறது மற்றும் அதன் விளைவாக வரும் மதிப்பை © கவுண்டர் அளவுருவுக்கு ஒதுக்குகிறது. கொடுக்கப்பட்ட பணியாளர் எண்ணுக்கான அனைத்து வரிசைகளும் Employee மற்றும் Works_on அட்டவணையில் இருந்து நீக்கப்பட்ட பிறகு, கணக்கிடப்பட்ட மதிப்பு @quantityDeleteEmployee மாறிக்கு ஒதுக்கப்படும்.

OUTPUT விருப்பம் குறிப்பிடப்பட்டால் மட்டுமே அளவுரு மதிப்பு அழைப்பு நடைமுறைக்கு திரும்பும். மேலே உள்ள எடுத்துக்காட்டில், DeleteEmployee செயல்முறை @counter அளவுருவை அழைப்பு செயல்முறைக்கு அனுப்புகிறது, எனவே சேமிக்கப்பட்ட செயல்முறை கணினிக்கு மதிப்பை வழங்குகிறது. எனவே, @counter அளவுரு ஒரு செயல்முறையை அறிவிக்கும் போது OUTPUT விருப்பத்திலும் அதை அழைக்கும் போது EXECUTE அறிக்கையிலும் குறிப்பிடப்பட வேண்டும்.

முடிவுகளுடன் எக்ஸிகியூட் அறிக்கையின் உட்பிரிவு

SQL சர்வர் 2012 இல், EXECUTE அறிக்கைக்கு, நீங்கள் உள்ளிடவும் முடிவுகளின் தொகுப்பு விதிகளுடன், இதன் மூலம், சில நிபந்தனைகள் பூர்த்தி செய்யப்பட்டால், சேமிக்கப்பட்ட செயல்முறையின் முடிவு தொகுப்பின் வடிவத்தை நீங்கள் மாற்றலாம்.

பின்வரும் இரண்டு எடுத்துக்காட்டுகள் இந்த வாக்கியத்தை விளக்க உதவும். முதல் உதாரணம் ஒரு அறிமுக உதாரணம் ஆகும், இது முடிவுகளுடன் கூடிய தொகுப்பு விதி தவிர்க்கப்பட்டால் முடிவு எப்படி இருக்கும் என்பதைக் காட்டுகிறது:

EmployeesInDept செயல்முறை என்பது ஒரு குறிப்பிட்ட துறையில் பணிபுரியும் அனைத்து ஊழியர்களின் பணியாளர் எண்கள் மற்றும் கடைசி பெயர்களைக் காண்பிக்கும் ஒரு எளிய செயல்முறையாகும். துறை எண் என்பது ஒரு செயல்முறை அளவுரு மற்றும் அதை அழைக்கும் போது குறிப்பிடப்பட வேண்டும். இந்த நடைமுறையைச் செயல்படுத்துவது இரண்டு நெடுவரிசைகளைக் கொண்ட அட்டவணையை உருவாக்குகிறது, அதன் தலைப்புகள் தரவுத்தள அட்டவணையில் உள்ள தொடர்புடைய நெடுவரிசைகளின் பெயர்களுடன் பொருந்துகின்றன, அதாவது. ஐடி மற்றும் கடைசி பெயர். முடிவு நெடுவரிசைகளின் தலைப்புகளை (அத்துடன் அவற்றின் தரவு வகை) மாற்ற, SQL சர்வர் 2012 புதிய முடிவுகளின் தொகுப்பு விதியைப் பயன்படுத்துகிறது. இந்த வாக்கியத்தின் பயன்பாடு கீழே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது:

மாதிரி டிபி பயன்படுத்தவும்; EXEC EmployeesInDept "d1" வித் ரிசல்ட் செட் (( INT NULL, [Last Name] char(20) NULL அல்ல));

இந்த வழியில் அழைக்கப்படும் ஒரு சேமிக்கப்பட்ட செயல்முறையை செயல்படுத்துவதன் முடிவு பின்வருமாறு இருக்கும்:

நீங்கள் பார்க்க முடியும் என, EXECUTE அறிக்கையில் உள்ள ரிசல்ட் செட் விதியைப் பயன்படுத்தி சேமிக்கப்பட்ட செயல்முறையை இயக்குவது, செயல்முறையால் உருவாக்கப்பட்ட முடிவு தொகுப்பில் உள்ள நெடுவரிசைகளின் பெயர்கள் மற்றும் தரவு வகைகளை மாற்ற உங்களை அனுமதிக்கிறது. எனவே, இந்த புதிய செயல்பாடு சேமிக்கப்பட்ட நடைமுறைகளை செயல்படுத்துவதில் அதிக நெகிழ்வுத்தன்மையை வழங்குகிறது மற்றும் அவற்றின் முடிவுகளை ஒரு புதிய அட்டவணையில் வைக்கிறது.

சேமிக்கப்பட்ட நடைமுறைகளின் கட்டமைப்பை மாற்றுதல்

டேட்டாபேஸ் இன்ஜினும் அறிவுறுத்தலை ஆதரிக்கிறது மாற்று செயல்முறைசேமிக்கப்பட்ட நடைமுறைகளின் கட்டமைப்பை மாற்றியமைக்க. ALTER PROCEDURE அறிக்கை பொதுவாக பரிவர்த்தனை-SQL அறிக்கைகளை ஒரு நடைமுறைக்குள் மாற்ற பயன்படுகிறது. ALTER PROCEDURE அறிக்கையின் அனைத்து அளவுருக்களும் CREATE PROCEDURE அறிக்கையின் அதே அளவுருக்களைப் போலவே அதே பொருளைக் கொண்டுள்ளன. இந்த அறிக்கையைப் பயன்படுத்துவதன் முக்கிய நோக்கம், ஏற்கனவே சேமிக்கப்பட்ட நடைமுறை உரிமைகளை மீறுவதைத் தவிர்ப்பதாகும்.

தரவுத்தள இயந்திரம் ஆதரிக்கிறது CURSOR தரவு வகை. சேமிக்கப்பட்ட நடைமுறைகளில் கர்சர்களை அறிவிக்க இந்த தரவு வகை பயன்படுத்தப்படுகிறது. கர்சர்வினவலின் முடிவுகளை (பொதுவாக வரிசைகளின் தொகுப்பு) சேமிப்பதற்கும், அந்த முடிவை வரிசையாக வரிசையாகக் காட்ட பயனர்களை அனுமதிக்கும் ஒரு நிரலாக்க கட்டமைப்பாகும்.

ஒன்று அல்லது சேமிக்கப்பட்ட செயல்முறைகளின் குழுவை நீக்க, பயன்படுத்தவும் டிராப் செயல்முறை அறிவுறுத்தல். db_owner மற்றும் sysadmin நிலையான பாத்திரங்களின் உரிமையாளர் அல்லது உறுப்பினர்கள் மட்டுமே சேமிக்கப்பட்ட செயல்முறையை நீக்க முடியும்.

சேமிக்கப்பட்ட நடைமுறைகள் மற்றும் பொதுவான மொழி இயக்க நேரம்

SQL சர்வர் பொது மொழி இயக்க நேரத்தை (CLR) ஆதரிக்கிறது, இது C# மற்றும் விஷுவல் பேசிக்கைப் பயன்படுத்தி பல்வேறு தரவுத்தள பொருட்களை (சேமிக்கப்பட்ட நடைமுறைகள், பயனர் வரையறுக்கப்பட்ட செயல்பாடுகள், தூண்டுதல்கள், பயனர் வரையறுக்கப்பட்ட திரட்டல்கள் மற்றும் தனிப்பயன் தரவு வகைகள்) உருவாக்க அனுமதிக்கிறது. பொதுவான இயக்க நேர அமைப்பைப் பயன்படுத்தி இந்த பொருட்களை இயக்க CLR உங்களை அனுமதிக்கிறது.

விருப்பத்தைப் பயன்படுத்தி பொதுவான மொழி இயக்க நேரம் இயக்கப்பட்டு முடக்கப்பட்டுள்ளது clr_enabledஅமைப்பு செயல்முறை sp_configure, இது அறிவுறுத்தல் மூலம் செயல்படுத்த தொடங்கப்பட்டது மறுசீரமைப்பு. CLR ஐ இயக்குவதற்கு sp_configure கணினி செயல்முறையை எவ்வாறு பயன்படுத்தலாம் என்பதை பின்வரும் எடுத்துக்காட்டு காட்டுகிறது:

மாதிரி டிபி பயன்படுத்தவும்; EXEC sp_configure "clr_enabled",1 RECONFIGURE

பொதுவான மொழி இயக்க நேரத்தைப் பயன்படுத்தி ஒரு செயல்முறையை உருவாக்க, தொகுக்க மற்றும் சேமிக்க, காட்டப்பட்டுள்ள வரிசையில் பின்வரும் படிகளின் வரிசையை நீங்கள் முடிக்க வேண்டும்:

    C# அல்லது விஷுவல் பேசிக்கில் சேமிக்கப்பட்ட செயல்முறையை உருவாக்கவும், பின்னர் பொருத்தமான கம்பைலரைப் பயன்படுத்தி தொகுக்கவும்.

    வழிமுறைகளைப் பயன்படுத்துதல் அசெம்பிளியை உருவாக்கவும், தொடர்புடைய இயங்கக்கூடிய கோப்பை உருவாக்கவும்.

    EXECUTE அறிக்கையைப் பயன்படுத்தி செயல்முறையை இயக்கவும்.

கீழே உள்ள படம் முன்னர் கோடிட்டுக் காட்டப்பட்ட படிகளின் வரைகலை வரைபடத்தைக் காட்டுகிறது. பின்வருவது இந்த செயல்முறையின் விரிவான விளக்கமாகும்.

முதலில், விஷுவல் ஸ்டுடியோ போன்ற வளர்ச்சி சூழலில் தேவையான நிரலை உருவாக்கவும். C# அல்லது விஷுவல் பேசிக் கம்பைலரைப் பயன்படுத்தி முடிக்கப்பட்ட நிரலை பொருள் குறியீட்டில் தொகுக்கவும். இந்த குறியீடு டைனமிக்-லிங்க் லைப்ரரி (.dll) கோப்பில் சேமிக்கப்படுகிறது, இது CREATE ASSEMBLY அறிக்கைக்கான ஆதாரமாக செயல்படுகிறது, இது இடைநிலை இயங்கக்கூடிய குறியீட்டை உருவாக்குகிறது. அடுத்து, செயல்படுத்தும் குறியீட்டை தரவுத்தள பொருளாகச் சேமிக்க, உருவாக்க செயல்முறை அறிக்கையை வெளியிடவும். இறுதியாக, பழக்கமான EXECUTE அறிக்கையைப் பயன்படுத்தி செயல்முறையை இயக்கவும்.

கீழே உள்ள எடுத்துக்காட்டு, C# இல் சேமிக்கப்பட்ட செயல்முறைக்கான மூலக் குறியீட்டைக் காட்டுகிறது:

System.Data.SqlClient ஐப் பயன்படுத்துதல்; Microsoft.SqlServer.Server ஐப் பயன்படுத்துதல்; பொது பகுதி வகுப்பு சேமிக்கப்பட்ட செயல்முறைகள் (பொது நிலையான எண்ணாக எண்ணும் பணியாளர்கள்() ( int row; SqlConnection connection = new SqlConnection("Context Connection=true"); connection.Open(); SqlCommand cmd = connection.CreateCommand(); cmd.CommandText எண்ணு(*) "பணியாளர்களின் எண்ணிக்கை" " + "பணியாளரிடமிருந்து"; வரிசைகள் = (int)cmd.ExecuteScalar(); connection.Close(); வரிசைகளைத் திரும்பு; ) )

இந்த நடைமுறையானது பணியாளர் அட்டவணையில் உள்ள வரிசைகளின் எண்ணிக்கையை எண்ணுவதற்கான வினவலை செயல்படுத்துகிறது. நிரலின் தொடக்கத்தில் உள்ள வழிமுறைகளைப் பயன்படுத்தி, நிரலை இயக்கத் தேவையான பெயர்வெளிகளைக் குறிப்பிடவும். இந்த வழிமுறைகளைப் பயன்படுத்தி, தொடர்புடைய பெயர்வெளிகளை வெளிப்படையாகக் குறிப்பிடாமல், மூலக் குறியீட்டில் வகுப்புப் பெயர்களைக் குறிப்பிட உங்களை அனுமதிக்கிறது. அடுத்து, StoreedProcedures வகுப்பு வரையறுக்கப்படுகிறது, அதற்காக அது பயன்படுத்தப்படுகிறது Sqlசெயல்முறை பண்பு, இந்த வகுப்பு ஒரு சேமிக்கப்பட்ட செயல்முறை என்று தொகுப்பாளருக்கு தெரிவிக்கிறது. CountEmployees() முறையானது வகுப்புக் குறியீட்டிற்குள் வரையறுக்கப்பட்டுள்ளது. தரவுத்தள அமைப்புக்கான இணைப்பு வகுப்பின் ஒரு நிகழ்வின் மூலம் நிறுவப்பட்டது Sql இணைப்பு. இணைப்பைத் திறக்க, இந்த நிகழ்வின் Open() முறை பயன்படுத்தப்படுகிறது. ஏ CreateCommand() முறைஒரு வகுப்பின் நிகழ்வை அணுக உங்களை அனுமதிக்கிறது SqlCommnd, தேவையான SQL கட்டளை அனுப்பப்பட்டது.

பின்வரும் குறியீடு துணுக்கில்:

Cmd.CommandText = "எண்ணைத் தேர்ந்தெடு(*) "பணியாளர்களின் எண்ணிக்கை" " + "பணியாளரிடமிருந்து";

பணியாளர் அட்டவணையில் உள்ள வரிசைகளின் எண்ணிக்கையை எண்ணி முடிவைக் காட்ட SELECT அறிக்கையைப் பயன்படுத்துகிறது. கட்டளை உரையானது cmd மாறியின் CommandText பண்புகளை CreateCommand() முறை மூலம் திருப்பியளிக்கப்பட்ட நிகழ்விற்கு அமைப்பதன் மூலம் குறிப்பிடப்படுகிறது. அடுத்து அது அழைக்கப்படுகிறது ExecuteScalar() முறை SqlCommand உதாரணம். இந்த முறையானது முழு எண் தரவு வகையாக மாற்றப்பட்டு வரிசைகள் மாறிக்கு ஒதுக்கப்படும் அளவிடல் மதிப்பை வழங்குகிறது.

விஷுவல் ஸ்டுடியோவைப் பயன்படுத்தி இந்தக் குறியீட்டை இப்போது தொகுக்கலாம். CLRStoredProcedures என்ற திட்டத்தில் இந்த வகுப்பைச் சேர்த்துள்ளேன், எனவே விஷுவல் ஸ்டுடியோ அதே பெயரில் ஒரு *.dll நீட்டிப்புடன் கூடிய ஒரு அசெம்பிளியை தொகுக்கும். கீழே உள்ள எடுத்துக்காட்டு, சேமிக்கப்பட்ட செயல்முறையை உருவாக்குவதற்கான அடுத்த படியைக் காட்டுகிறது: இயங்கக்கூடிய குறியீட்டை உருவாக்குகிறது. இந்த எடுத்துக்காட்டில் குறியீட்டை இயக்குவதற்கு முன், தொகுக்கப்பட்ட dll கோப்பின் இருப்பிடத்தை நீங்கள் அறிந்து கொள்ள வேண்டும் (பொதுவாக திட்டத்தின் பிழைத்திருத்த கோப்புறையில் அமைந்துள்ளது).

மாதிரி டிபி பயன்படுத்தவும்; "D:\Projects\CLRStoredProcedures\bin\Debug\CLRStoredProcedures.dll" இலிருந்து ASSEMBLY CLRStored Procedures ஐ உருவாக்க அனுமதி_செட் = பாதுகாப்பானது

CREATE ASSEMBLY அறிக்கையானது நிர்வகிக்கப்பட்ட குறியீட்டை உள்ளீடாக எடுத்துக்கொள்கிறது மற்றும் CLR சேமிக்கப்பட்ட செயல்முறைகள், பயனர் வரையறுக்கப்பட்ட செயல்பாடுகள் மற்றும் தூண்டுதல்களை உருவாக்கக்கூடிய தொடர்புடைய பொருளை உருவாக்குகிறது. இந்த அறிவுறுத்தலில் பின்வரும் தொடரியல் உள்ளது:

(dll_file) தொடரியல் மரபுகளிலிருந்து ASSEMBLY assembly_name [ AutHORIZATION owner_name ] உருவாக்கவும்

சட்டசபை_பெயர் அளவுரு சட்டசபையின் பெயரைக் குறிப்பிடுகிறது. விருப்பமான அங்கீகார விதி இந்த சட்டசபையின் உரிமையாளராக பங்கு பெயரைக் குறிப்பிடுகிறது. FROM உட்பிரிவு, ஏற்ற வேண்டிய சட்டசபை அமைந்துள்ள பாதையைக் குறிப்பிடுகிறது.

PERMISSION_SET விதியுடன் CREATE ASSEMBLY அறிக்கையின் மிக முக்கியமான உட்பிரிவு மற்றும் எப்போதும் குறிப்பிடப்பட வேண்டும். இது சட்டசபை குறியீட்டிற்கு வழங்கப்பட்ட அனுமதிகளின் தொகுப்பை வரையறுக்கிறது. பாதுகாப்பான அனுமதித் தொகுப்பு மிகவும் கட்டுப்பாடானது. இந்த உரிமைகளைக் கொண்ட சட்டசபை குறியீடு கோப்புகள் போன்ற வெளிப்புற கணினி ஆதாரங்களை அணுக முடியாது. EXTERNAL_ACCESS உரிமைகள் தொகுப்பு, அசெம்பிளிக் குறியீட்டை சில வெளிப்புற கணினி ஆதாரங்களை அணுக அனுமதிக்கிறது, அதே சமயம் UNSAFE உரிமைகள் தொகுப்பு தரவுத்தள அமைப்புக்கு உள்ளேயும் வெளியேயும் உள்ள வளங்களுக்கு வரம்பற்ற அணுகலை அனுமதிக்கிறது.

அசெம்பிளி குறியீட்டு தகவலைச் சேமிக்க, பயனர் CREATE ASSEMBLY அறிக்கையை வெளியிட வேண்டும். சட்டசபையின் உரிமையாளர், அறிவுறுத்தலைச் செயல்படுத்தும் பயனர் (அல்லது பங்கு) ஆவார். CREATE SCHEMA அறிக்கையின் அங்கீகரிப்பு விதியைப் பயன்படுத்தி மற்றொரு பயனரை சட்டசபையின் உரிமையாளராக மாற்றலாம்.

தரவுத்தள இயந்திரமானது ALTER ASSEMBLY மற்றும் DROP ASSEMBLY அறிக்கைகளையும் ஆதரிக்கிறது. ALTER ASSEMBLY அறிக்கைசட்டசபையை சமீபத்திய பதிப்பிற்கு புதுப்பிக்க பயன்படுகிறது. இந்த அறிவுறுத்தல் தொடர்புடைய அசெம்பிளியுடன் தொடர்புடைய கோப்புகளைச் சேர்க்கிறது அல்லது நீக்குகிறது. அசெம்பிளி அறிவுறுத்தலை கைவிடவும்தற்போதைய தரவுத்தளத்திலிருந்து குறிப்பிட்ட அசெம்பிளி மற்றும் அதனுடன் தொடர்புடைய அனைத்து கோப்புகளையும் நீக்குகிறது.

நீங்கள் முன்பு செயல்படுத்திய நிர்வகிக்கப்பட்ட குறியீட்டின் அடிப்படையில் சேமிக்கப்பட்ட செயல்முறையை எவ்வாறு உருவாக்குவது என்பதை கீழே உள்ள எடுத்துக்காட்டு காட்டுகிறது:

மாதிரி டிபி பயன்படுத்தவும்; CLRSஸ்டோர் செய்யப்பட்ட செயல்முறைகள்.StoredProcedures.CountEmployees என வெளிப் பெயராக செயல்முறை எண்ணிக்கையை உருவாக்கவும்.

எடுத்துக்காட்டில் உள்ள CREATE PROCEDURE அறிக்கையானது முந்தைய எடுத்துக்காட்டுகளில் உள்ள அதே அறிக்கையிலிருந்து வேறுபட்டது. வெளிப்புற பெயர் அளவுரு. இந்த விருப்பம் பொதுவான மொழி இயக்க நேரத்தால் குறியீடு உருவாக்கப்படுகிறது என்பதைக் குறிப்பிடுகிறது. இந்த வாக்கியத்தில் உள்ள பெயர் மூன்று பகுதிகளைக் கொண்டுள்ளது:

சட்டசபை_பெயர்.வகுப்பு_பெயர்.முறை_பெயர்

    சட்டசபை_பெயர் - சட்டசபையின் பெயரைக் குறிக்கிறது;

    class_name - பொது வகுப்பின் பெயரைக் குறிக்கிறது;

    method_name - விருப்பப் பகுதி, வகுப்பிற்குள் வரையறுக்கப்பட்ட முறையின் பெயரைக் குறிப்பிடுகிறது.

CountEmployees நடைமுறையை செயல்படுத்துவது கீழே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது:

மாதிரி டிபி பயன்படுத்தவும்; அறிவிக்கவும் @count INT EXECUTE @count = CountEmployees Print @count -- Return 7

PRINT அறிக்கையானது பணியாளர் அட்டவணையில் உள்ள தற்போதைய வரிசைகளின் எண்ணிக்கையை வழங்குகிறது.

கும்பல்_தகவல்