First lets get some data into a temp table named #systables
and ad a incrementing row number so we can query one record at a time
select
o.name,
row_number() over (order by o.name) as rn
into
#systables
from
sys.objects as o
where
o.type = 'S'
Next we declare some variables to control the looping and store the table name in this example
declare
@rn int = 1,
@maxRn int = (
select
max(rn)
from
#systables as s
)
declare @tablename sys name
Now we can loop using a simple while. We increment @rn
in the select
statement but this could also have been a separate statement for ex set @rn = @rn + 1
it will depend on your requirements. We also use the value of @rn
before it's incremented to select a single record from #systables
. Lastly we print the table name.
while @rn <= @maxRn
begin
select
@tablename = name,
@rn = @rn + 1
from
#systables as s
where
s.rn = @rn
print @tablename
end