Eigentlich habe ich einen benutzerdefinierten Tabellentyp in SQL Server 2008 erstellt. Struktur ist unten angegeben.Wie mache ich eine Funktion, die den benutzerdefinierten Tabellentyp als Parameter akzeptiert und denselben in sql zurückgibt?
Ich übergebe es als Parameter in Funktion und diese Funktion gibt auch diese Art von Tabellentyp zurück. Ich stehe vor dem Problem, während ich eine Variable dieses Typs in Funktion deklariere, einige Daten darin einfüge und diesen Parameter zurückgebe.
Tabellentyp Struktur ist:
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)
)
Und die Funktion, was ich versuche zu erstellen:
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
Herr Richard, Vielen Dank für schnelle Antwort. Es ist hilfreich für mich .. –
Herr Mahmoud Gamal, es zeigt den Fehler "Muss die skalare Variable" @ReturnTable "deklarieren." –
Haben Sie im Funktionskopf die Zeile 'RETURNS @ReturnTable Table' übersehen? – RichardTheKiwi