Кажется, вам может потребоваться табличная функция.
Кроме того, по возможности следует избегать циклов
Пример
CREATE FUNCTION [dbo].[tvf-Star] (@Input int)
Returns Table
As
Return (
Select Top (@Input)
Stars = replicate(' ',@Input-N)+replicate('*',N)
From ( Select Top (@Input) N=Row_Number() Over (Order By (Select NULL)) From master..spt_values n1 ) A
Order By N Desc
)
Если бы вы:
Select * from [dbo].[tvf-Star](5)
Результаты
Stars
*****
****
***
**
*