PDA

View Full Version : Stored Procedure



RK977877
دوشنبه 03 تیر 1387, 08:00 صبح
با سلام
به نظر شما آيا ميتوان يك Stored Procedure را هر دفعه با يك پارامتر ورودي دسنور Sql و خروجيهاي متفاوت از آن داشت
مثلا يك بار خروجي Bit و بار ديگر خروجي int و .. money و چيزهاي ديگر
اگه ميشه يك مثال از آن در اين تايپيك قرار دهيد

حسین محمدی
دوشنبه 03 تیر 1387, 11:13 صبح
در stored procedure‌خود يك پارامتر خروجي تعريف كنيد و نوع آن را sql_variant قرار دهيد.

با توجه به MSDN اين تايپ به اين شكل تعريف شده است.



A data type that stores values of various SQL Server 2005-supported data types, except text, ntext, image, timestamp, and sql_variant.


http://msdn.microsoft.com/en-us/library/ms173829.aspx
http://msdn.microsoft.com/en-us/library/ms181071.aspx

يك مثال :



Declare @variant1 sql_variant, @variant2 sql_variant
Declare @variant3 sql_variant, @variant4 sql_variant

Declare @MyInt as integer, @MyDatetime as Datetime
Declare @MyMoney as Money, @MyBit as bit

Set @MyInt = 37
Set @MyDatetime = '2/18/02'
Set @MyMoney = $37.23
Set @MyBit = 1

Select @variant1 = @MyInt,
@variant2 = @MyDatetime,
@variant3 = @MyMoney,
@variant4 = @MyBit


Select @variant1 as [Int Variant],
@variant2 as [Datetime Variant],
@variant3 as [Money Variant],
@variant4 as [Bit Variant]


خروجي چنين است:



Int Variant Datetime Variant Money Variant Bit Variant
--------------- ------------------------ -------------- -----------
37 2002-02-18 00:00:00.000 37.2300 1


براي اطلاعات بيشتر به اين لينك مراجعه كنيد:

http://www.sqlteam.com/article/the-sql_variant-datatype

RK977877
دوشنبه 03 تیر 1387, 12:57 عصر
با تشكر
حال ميخوام يك پارامتر كه يك Sql هستش را به Stored Procedure مزبور پاس داده و از آن يك مقدار خروجي مثلا از نوع Money البته گفتم كه خروجي بايد همان Sql_Variant باشد
اين به چه صورت است

حسین محمدی
سه شنبه 04 تیر 1387, 15:31 عصر
حال ميخوام يك پارامتر كه يك Sql هستش را به Stored Procedure مزبور پاس داده

اگر ممكن است سوالتان را واضحتر بفرماييد

RK977877
سه شنبه 04 تیر 1387, 17:29 عصر
ببينيد من ويخوام يك كد Sql رو كه مثلا يك Select از يك يا چند جدول بوده و نهايتا حاوي يك مقدار مي باشد را برگردانم توسط Stored procedure اين به چه صورت است
به عنوان مثال


StrSql = ' Select Code From Table1 Where Code = '100''