
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
تو این دوره SQL Server رو از صفر تا پیشرفته یاد میگیری! از تراکنشها و طراحی دیتابیس تا Query نویسی حرفهای و پروژههای واقعی مثل مدیریت فروش و سیستم مالی. همه چی رو با مثال و تمرین یاد میگیری و یه متخصص دیتابیس میشی!
مشاهده بیشترمشخصات مقاله
بازگشت مقادیر پارامتر روش ذخیره شده به فراخوانی یک روش ذخیره شده
بازگشت مقادیر پارامتر روش ذخیره شده به فراخوانی یک روش ذخیره شده
در بخش قبل در مورد چگونگی انتقال پارامترها به یک روش ذخیره شده (stored procedure) صحبت کردیم، اما گزینه ی دیگر انتقال مقادیر پارامتر از یک روش ذخیره شده به عقب می باشد. یک گزینه ی ممکن برای این کار این است که روش ذخیره شده ی دیگری را فرابخوانید که هیچ داده ای را گزارش نمی دهد، اما مقادیر پارامتر مورد استفاده با فراخوانی stored procedure را گزارش می دهد.
برقراری پارامترهای خارجی برای stored procedure اساسا مشابه برقراری پارامترهای ورودی می باشد، تنها تفاوت این است که شما از عبارت OUTPUT پس از نام پارامتر برای تعیین بازگشت یک مقدار استفاده می کنید. عبارت خروجی یا به وسیله ی کلمه ی کلیدی "OUTPUT" یا فقط "OUT" تعیین می شود.
خروجی ساده:
1 2 3 4 5 6 | CREATE PROCEDURE uspGetAddressCount @City nvarchar(30), @AddressCount int OUTPUT AS SELECT @AddressCount = count (*) FROM AdventureWorks.Person.Address WHERE City = @City <button></button> |
یا به این روش انجام می شود:
1 2 3 4 5 6 | CREATE PROCEDURE uspGetAddressCount @City nvarchar(30), @AddressCount int OUT AS SELECT @AddressCount = count (*) FROM AdventureWorks.Person.Address WHERE City = @City <button></button> |
برای فراخوانی stored procedure آن را مانند زیر اجرا می کنیم. ابتدا قصد داریم یک متغیر را اعلام کنیم، stored procedure را اجرا کنیم و سپس مقادیر گزارش داده شده را انتخاب کنیم:
1 2 3 4 | DECLARE @AddressCount int EXEC uspGetAddressCount @City = 'Calgary' , @AddressCount = @AddressCount OUTPUT SELECT @AddressCount <button></button> |
این کار مانند زیر نیز قابل انجام می باشد که نام های پارامتر stored procedure انتقال داده نمی شوند:
1 2 3 4 | DECLARE @AddressCount int EXEC uspGetAddressCount 'Calgary' , @AddressCount OUTPUT SELECT @AddressCount <button></button> |