Is it possible to create rows without using looping functions?

SQL

```
CREATE TABLE #tempTable(id int)
DECLARE @i int = 0
DECLARE @numrows int = 5
WHILE @i<@numrows
BEGIN
INSERT INTO #tempTable VALUES(@i)
SET @i = @i+1
END
SELECT * FROM #tempTable

```

Can I get the same result without looping. I'm using SQL Server 2014