PDA

View Full Version : مبتدی: شرط در table value function



mohammad meta
شنبه 23 مرداد 1389, 13:59 عصر
سلام بر همه بچه ها
من یک table value function دارم که بر اساس پارامتر ورودی یکی از دستورات select را اجرا می کنه



CREATE FUNCTION testif(@m int)
RETURNS Table
BEGIN
if(@m = 1)
Begin
select trn.Cities from trn.Orders
End
else
select trn.Vehicle from trn.Orders
return
END

ولی error می ده کسی میتونه من راهنمایی کنه .هر چی search میکنم اشکال متوجه نمی شم

m_omrani
شنبه 23 مرداد 1389, 15:34 عصر
نحوه تعریف UDF را درست ننوشته ايد. بايد يک متغير براي خروجي تعريف کنيد، ضمن اين که بايد ساختار جدولي را که مي خواهيد برگردانيد را نيز در قسمت RETURNS مشخص کنيد. هنگام برگرداندن رکوردها نيز بايد آنها را در متغير جدولي که به عنوان مقدار برگشتي تعريف کرده ايد درج کنيد. چيزي مانند اين:



CREATE FUNCTION testif(@m int) RETURNS @x Table(Titles nvarchar(100))
BEGIN
if(@m = 1)
Begin
insert into @x(Titles)
select trn.Cities as Titles from trn.Orders
End
else
insert into @x(Titles)
select trn.Vehicle as Titles from trn.Orders
return
END

محمد سلیم آبادی
شنبه 23 مرداد 1389, 23:50 عصر
سلام بر همه بچه ها
من یک table value function دارم که بر اساس پارامتر ورودی یکی از دستورات select را اجرا می کنه
ولی error می ده کسی میتونه من راهنمایی کنه .هر چی search میکنم اشکال متوجه نمی شم

سلام،
به چه علت می خواهین از Multi statement TVF برای انجام این کار استفاده کنید؟ بنظر میرسه Stored Procedure خیلی انتخاب مناسب تری باشد.