Cómo insertar varias filas en una tabla en función de un rango de números

Tengo que insertar un número específico de filas en una tabla de SQL Server.

DECLARE @val AS INT = 20, 
        @val2 AS VARCHAR(50), 
        @Date AS DATETIME = CONVERT(DATETIME,'02-05-2016'),
        @i AS INT = 0

SET @val2 = 'abc'

DECLARE @tbl TABLE
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [val2] VARCHAR(50) NULL,
    [datum] [datetime] NULL
)

--INSERT INTO @tbl
SELECT @val2, DATEADD(DAY, @i, @Date)
UNION ALL
SELECT @val2, DATEADD(DAY, @i, @Date)

En esta consulta, tengo que insertar fechas a partir de una fecha determinada hasta el número de valor asignado a la variable '@val'. Entonces, en este caso, se deben insertar 20 filas en la tabla a partir de '02 -05-2016 'y luego aumentar la fecha 1 día para cada fila.

¿Cómo puedo hacerlo en una sola declaración sin ningún bucle o múltiples instrucciones de inserción?

Respuestas a la pregunta(3)

Su respuesta a la pregunta