صفحه اصلی / دوره‌های آموزشی / آموزش sql server 2019، از مقدماتی تا متخصص پایگاه داده / آموزش stored procedure در 2019 sql server همراه با مثال (بخش سوم)

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

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

جلسات دوره


                                                                      
مهدی عباسی
مدرس:

مهدی عباسی

18 سال سابقه برنامه‌نویسی و تدریس برنامه‌نویسی
کسب مقام‌های اول و دوم کشوری در مسابقات برنامه‌نویسی

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

آموزش کامل 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)

 

 

خروجی:

خروجی دوم

 

 

 

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

 

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

 

نظرات دانشجویان

نظر شما در تصمیم دیگران اثرگذار است.

لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.

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

494