View Full Version : ایجاد تابع بازگشتی در sql
andaron
یک شنبه 04 تیر 1391, 16:27 عصر
با سلام
دوستان من می خوام کدی شبیه این بنویسم که اگر شرط درست بود مقدار true و اگر اشتباه بود false
رو sql برگردونه
خودم تقریبا چیزی نوشتم ولی ایراد داره
IF NOT EXISTS (SELECT *
FROM marasemat
WHERE marasemat_date_year = '1400') BEGIN RETURN true
END ELSE BEGIN
RETURN false
END
tooraj_azizi_1035
یک شنبه 04 تیر 1391, 19:21 عصر
سلام
کد شما یک تابع عادی است نه بازگشتی. تابع بازگشتی تابعی است که خودش خودش را صدا بزند.
باید از دستور CREATE FUNCTION استفاده کنید: http://msdn.microsoft.com/en-us/library/ms186755.aspx
andaron
دوشنبه 05 تیر 1391, 15:48 عصر
البته مهم نیست یازگشتی باشد یانه
مهم اینه که وقتی اون سطر تو جدول باشه پیغام true و اگر نباشد false رو بفرسته
ولی من کد بالا که نوشتم ارور داد
حالا نمی دونم چه کتم
baktash.n81@gmail.com
دوشنبه 05 تیر 1391, 18:28 عصر
شما اول باید یه تابع تعریف کنی که مقدار بازگشتی داشته باشه ... که مقدار بازگشتیش هم از نوع navrchar(10) باشه مثلا ... مهم اینه که رشته باشه ... بعد اونجایی که داری Return می کنی مقادیر رو باید داخل تک کتیشن ' قرار بدی ... چون True و False تو TSQL هیچ مفهومی نداره ... حتما باید آخرین خط تعریف داخل Function رو Return قرار بدید ... ( البته Return داخل Else رو به عنوان آخرین کد قبول نمی کنه ) خوب اگه شرط درون IF درست باشه که True بر می گرده و تابع همونجا تموم می شه ... پس در این مورد خاص نیازی به Else ندارید ... همینجوری بنویسید Return 'False' که اگه شرط if برقرار نشد ... این خط اجرا بشه ... اینم یه نمونه امیدوارم کمک کنه
Create Function test()
Returns nvarchar(10)
as
begin
if exists (select * from users where user_id=4000)
return 'True'
return 'False'
end
andaron
جمعه 09 تیر 1391, 16:08 عصر
دوست عزیز
من این تابع رو در new query
در ویژوال استادیو وارد می کنم ارور میده البته من از sql experes استفاده می کنم.
یه سوال دیگه راه دیگه نداره بگیم که اگر سط مورد نظر وجود داشت مثلا بگه وجود داره و اگر وجود نداشت بگه وجود نداره
راستش مثل اینکه این تابع های بازگشتی خیلی سخت هستند
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.