En realidad, he creado un tipo de tabla definido por el usuario en el servidor sql 2008. La estructura se da a continuación.¿Cómo hacer una función que tome el tipo de tabla definido por el usuario como parámetro y devolverlo en sql?
Lo estoy pasando como parámetro en la función y esa función también devuelve ese tipo de tipo de tabla. Estoy enfrentando el problema, mientras declaro una variable de ese tipo en función, insertando algunos datos en ella y devolviendo ese parámetro.
estructura de tipo de mesa es:
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)
)
Y la función, lo que estoy tratando de crear es:
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
Sr. Richard, muchas gracias por su rápida respuesta. Es útil para mí ... –
Sr. Mahmoud Gamal, muestra el error que "Debe declarar la variable escalar" @ReturnTable "." –
¿Echas de menos la línea 'RETURNS @ReturnTable Table' en el encabezado de la función? – RichardTheKiwi