آموزش stored procedure در 2019 sql server همراه با مثال (بخش سوم)
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش کامل 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
خروجی:
مثال: در این مثال یک 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)
خروجی:
امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل میتوانید به انجمن پرسش و پاسخ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید.
امید آنکه بیش از پیش موفق و مؤید باشید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.