آشنایی کامل با توابع تعریف شده توسط کاربر در SQL Server 2019 (بخش اول)


آشنایی کامل با توابع تعریف شده توسط کاربر در SQL Server 2019 (بخش اول)
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

آشنایی کامل با توابع تعریف شده توسط کاربر در SQL Server 2019 (بخش اول):


در این جلسه می‌خواهیم در مورد توابع تعریف شده توسط کاربر (User Defined Function) صحبت کنیم. قبلا در مورد توابعی که درون خود sql server وجود دارد و از قبل تعریف شده توضیح داده‌ایم. مانند توابع رشته‌ایی، تاریخ و زمان و توابع کار روی داده‌های عددی و...  . می‌خواهیم توضیح دهیم که شما چگونه می‌توانید درون برنامه‌ها و دیتابیس خود تابع تعریف کنید و از آن در دیتابیس‌های مختلف استفاده کنید. مسلما اولین چیزی که مهم باشد‌ این است که چگونه می‌توانیم تابع تعریف کنیم و بعد از تعریف تابع چگونه می‌توان از آن تابع استفاده کنیم. از نظر ساختار دو دسته تابع داریم، دسته اول توابعی هستند که می‌توانند داده‌های معمولی مثل داده عددی یا رشته‌ایی را  برگردانند و دسته دوم توابعی هستند که می‌توانند در خروجی یک جدول را برگردانند. 


با ساختار کلی تابع شاید در زبان‌های مختلف برنامه نویسی آشنا شده باشید. توابع شبیه یک دستگاه هستند که می‌توانند یک ورودی داشته باشند و در نهایت یک خروجی را برگردانند. شاید بپرسید که store procedure   هم مانند توابع هستند و همین کار را می‌توانستند انجام دهند، آن‌ها  هم وروردی داشتند و عملی را انجام میدادند و در نهایت خروجی‌ای را برمیگردانند، بله بسیار شبیه هم هستند. اما یک سری تفاوت‌ها وجود دارد که باعث می‌شود در استفاده کردن از آن‌ها حق انتخاب داشته باشیم و بتوانیم با توجه به شرایط بهترین را انتخاب کنیم. اینکه در کجا از store procedure  استفاده کنیم و کجا از توابع استفاده کنیم. اولین تفاوتی که بین store procedure  و توابع می‌باشد این است که تابع‌ها حتما خروجی دارند اما store procedure می‌تواند خروجی داشته باشد یا اصلا نداشته باشد یا حتی می‌تواند چندین خروجی داشته باشد. توابع می‌توانند پارامتر ورودی داشته باشند در صورتی که store procedureها می‌توانند پارامتر ورودی و خروجی داشته باشند. یعنی همان output که در store procedruteها وجود داشت. ما می‌توانستیم یک ظرف خالی را به store procedure بفرستیم و به کمک دستور output آن را برگردانیم. در صورتی که در توابع این مسئله وجود ندارد. توابع را می‌توانیم داخل store procedureها فراخوانی کنیم اما برعکسش شدنی نیست یعنی نمی‌توانیم store procedure را در توابع فراخوانی کنیم. توابع فقط می‌توانند، انتخاب کنند. در صورتی که store procedureها عملیاتی مانند insert, Update, Delete را هم انجام می‌دهند. اما کار توابع بازیابی اطلاعات می‌باشد. Store procedureها می‌تواند try-catch داشته باشند. با دانستن این نکات می‌توانید تصمیم بگیرید در چه مواقعی از توابع استفاده کنید و چه مواقعی از store procedureها استفاده کنید. در اینجا متوجه شدیم که store pricedureها از توابع قوی‌تر هستند. اما نکته مهم این است که توابع را در select می‌توانیم براحتی استفاده ‌کنیم و از آن‌ها خروجی بگیریم. پس هر زمان که نیاز بود یک عملی انجام شود و خروجی را برگرداند می‌توانیم از توابع استفاده کنیم.

 

امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل می‌توانید به انجمن پرسش و پاسخ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید. 
امید آنکه بیش از پیش موفق و مؤید باشید.

 

انجمن متخصصان پایگاه داده

 

 


 


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 71 جلسه
مدت زمان 1626 دقیقه
حجم دوره 5/57 گیگابایت
سطح مهارت مقدماتی تا پیشرفته
وضعیت دوره پایان یافته
: میانگین امتیاز

540,000تومان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی


درباره مدرس :

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی آنلاین درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ... ده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....بیشتر بدانید