آموزش stored procedure در 2019 sql server همراه با مثال (بخش سوم)


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

آموزش کامل Stored Procedureها در SQL Server 2019 (بخش سوم):

 

با ادامه مبحث Stored Procedureها را در خدمتتان هستیم. برای یادگیری بهتر این مبحث باهم چند مثال را بررسی می‌کنیم.

مثال:

می‌خواهیم یک procedure بنویسیم که بتواند روی جدول customers عمل جستجو انجام دهد. عمل جستجو را روی فیلدهای CustomerId, LName و StateCode انجام می‌دهیم. به این صورت که هر مقداری را که وارد کردیم سطر مربوطه  از جدول customers را نمایش دهد.  با استفاده از procedure یک رشته تولید می‌کنیم که عمل جستجو را انجام دهد و بعد از اینکه رشته تولید شد توسط  sp_executesql  می‌توانیم رشته جستجو را اجرا کنیم. که دارای سه بخش می‌باشد بخش اول رشته می‌باشد و بخش دوم تعریف متغیرهای رشته است و بخش سوم مقداردهی متغیرهای رشته می‌باشد.

 

رشته تولید شده توسط procedure، usp_Search:

-- Select * From Customers Where 1=1  And  StateCode=@sc   And LName=@lname And CustomerId=@cId

 

 

Create Proc usp_Search

@cId Int,

@lname Nvarchar(100),

@sc TinyInt

as

Begin

          Declare @sql Nvarchar(max)

          Set @sql='Select * From Customers Where 1=1 '

          if(@cId is not null)

                   Set @sql+=' And CustomerId=@cId'

          if(@lname is not null)

              Set @sql+=' And LName=@lname'

          if(@sc is not null)

                   Set @sql+=' And  StateCode=@sc'

 

          exec sp_executesql @sql,N'@cId Int , @lname Nvarchar(100) , @sc TinyInt',@cId,@lname,@sc

End

 

 

exec usp_Search 3,N'عباسی',29

exec usp_Search NULL,NULL,29

exec usp_Search NULL,N'عباسی',NULL

 

خروجی:

خروجی 1

 

 

مثال: در این مثال یک Procedure برای درج شهر می‌نویسیم.

 

Create Proc usp_AddCity

@cn NvarChar(100),

@sc TinyInt

As

Begin

          Insert INTO Cities([CityName],[StateCode])Values (@cn,@sc)

          Print(N'درج شهر جدید با موفقیت انجام شد')

End

 

 

مثال: در این مثال می‌خواهیم علاوه بر درج شهر Id آخرین شهری را که درج کرده‌ایم را برگرداند. با استفاده از تابع SCOPE_IDENTITY() می‌توانیم آخرین id که به صورت identity تولید شده است را برگردانیم. برای برگشت یک مقدار در procedure از return استفاده می‌کنیم. procedureهایی که return دارند و مقداری را برمی‌گردانند باید در زمان اجرای آن بعد از کلمه Exec یک متغیر برای آن قرار دهیم.

 

Alter Proc usp_AddCity

@cn NvarChar(100),

@sc TinyInt

As

Begin

          Insert INTO Cities([CityName],[StateCode])Values (@cn,@sc)

          Print(N'درج شهر جدید با موفقیت انجام شد')

 

          Declare @id Int

          set @id=SCOPE_IDENTITY()

          return @id

End

 

 

Declare @CityCode Int

Exec @CityCode=usp_AddCity N'2تست',29

Print(@CityCode)

 

 

خروجی:

خروجی دوم

 

 

 

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

 

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

 


نظر بدهید

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


مشخصات دوره


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

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

مهدی عباسی


درباره مدرس :

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