Your question doesn't give much idea of what you want, so here are some choices:
CREATE FUNCTION GetRange
(
@Lower INTEGER
,
@Upper INTEGER
)
RETURNS @IntegerRange TABLE
(
Member INTEGER
)
AS
BEGIN
WHILE @Lower<=@Upper
BEGIN
INSERT INTO @IntegerRange VALUES (@Lower)
SET @Lower=@Lower+1
END
RETURN
END
SELECT * FROM GetRange ( 12 , 20 )
CREATE FUNCTION GetRangeById
(
@ID INTEGER
)
RETURNS @IntegerRange TABLE
(
Member INTEGER
)
AS
BEGIN
DECLARE @Lower INTEGER
DECLARE @Upper INTEGER
SET @Lower = (SELECT \[Lower\] FROM Series WHERE ID=@ID)
SET @Upper = (SELECT \[Upper\] FROM Series WHERE ID=@ID)
WHILE @Lower<=@Upper
BEGIN
INSERT INTO @IntegerRange VALUES (@Lower)
SET @Lower=@Lower+1
END
RETURN
END
SELECT * FROM GetRange ( 100 )
CREATE FUNCTION GetAllRanges
(
)
RETURNS @IntegerRange TABLE
(
ID INTEGER
,
Member INTEGER
)
AS
BEGIN
DECLARE @ID INTEGER
DECLARE @Lower INTEGER
DECLARE @Upper INTEGER
DECLARE SeriesCursor CURSOR FOR SELECT \* FROM Series
OPEN SeriesCursor
FETCH NEXT FROM SeriesCursor
INTO @ID , @Lower , @Upper
WHILE @@FETCH\_STATUS=0
BEGIN
WHILE @Lower<=@Upper
BEGIN
INSERT INTO @IntegerRange VALUES (@ID , @Lower)
SET @Lower=@Lower+1
END
FETCH NEXT FROM SeriesCursor
INTO @ID , @Lower , @Upper
END
CLOSE SeriesCursor
RETURN
END
SELECT * FROM GetAllRanges()