दरअसल मैंने एसक्यूएल सर्वर 2008 में उपयोगकर्ता परिभाषित तालिका प्रकार बनाया है। संरचना नीचे दी गई है।एक फ़ंक्शन कैसे बनाया जाए जो उपयोगकर्ता परिभाषित तालिका प्रकार को पैरामीटर के रूप में लेता है और SQL में समान रूप से लौटाता है?
मैं इसे फ़ंक्शन में पैरामीटर के रूप में पास कर रहा हूं और यह फ़ंक्शन उस प्रकार के तालिका प्रकार को भी वापस कर देता है। मुझे समस्या का सामना करना पड़ रहा है, जबकि मैं उस प्रकार के एक चर को फ़ंक्शन में घोषित करता हूं, इसमें कुछ डेटा डालता हूं और उस पैरामीटर को वापस करता हूं।
तालिका प्रकार की संरचना होती है:
Create Type OfferWithSubscription as Table
(
OfferID int,
OfferUserID int,
OfferImage varchar(200),
OfferExactPrice Decimal(18,2),
OfferContent varchar(max),
OfferTitle varchar(100),
StartDate datetime,
EndDate datetime,
StartTime datetime,
StopTime datetime,
ShowToUser bit,
SubID int,
SubLevel varchar(100)
)
और समारोह, क्या मैं बनाने के लिए कोशिश कर रहा हूँ है:
CREATE FUNCTION FN_ShowOffer
(
@Gold int,
@Silver int,
@Bronze int,
@table dbo.OfferWithSubscription Readonly)
RETURNS dbo.OfferWithSubscription
AS
BEGIN
DECLARE @ReturnTable AS dbo.OfferWithSubscription;
Declare @Case as varchar(20)
if(@Gold=0 and @Silver=1 and @Bronze=0)
begin
set @Case='1S'
end
if(@Case='1S')
Begin
insert into @ReturnTable
select OfferID, OfferUserID, OfferImage,
OfferExactPrice, OfferContent,
OfferTitle, StartDate, EndDate,
StartTime, StopTime, ShowToUser,
SubID, SubLevel
from @table
where SubID=4
End
RETURN (
@ReturnTable
)
END
श्री रिचर्ड, त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मेरे लिए यह उपयोगी है .. –
श्री महमूद Gamal, यह त्रुटि दिखा रहा है कि "स्केलर वैरिएबल घोषित करना चाहिए" @ReturnTable "।" –
क्या आपने फ़ंक्शन हेडर में 'RETURNS @ReturnTable Table' पंक्ति को याद किया था? – RichardTheKiwi