2012-05-12 37 views
6

Quiero escribir una consulta SQL que inserta números incrementales que comienzan en un número específico (por ejemplo 100) y termina en otro número específico (por ejemplo 3000) en una columna de un tabla en SQL Server, pero no sé cómo hacer esto.Insertar números delimitados específicos en una columna en SQL Server

Por ejemplo:
quiero insertar 100 a 3000 en categoryID (columna) de Category (tabla)

Muchas gracias

+0

¿El 'categoryID' tiene' IDENTITY' establecido? Parece que estás intentando hacer algo que se considera una mala práctica en el diseño de bases de datos: tener valores clave significativos. – Filburt

Respuesta

7
DECLARE @id INT 
SET @id = 100 
WHILE (@id <= 300) 
BEGIN 
    insert into categories (categoryID) values (@id) 
    SELECT @id = @id + 1 
END 
1

Lo mismo, pero usando CTE recursiva:

DECLARE @i INT 
DECLARE @n INT 
SET @i = 100 
SET @n = 3000 
;WITH t(c) AS (
    SELECT @i 
    UNION ALL 
    SELECT c + 1 FROM t WHERE c < @n 
) 
INSERT INTO Categories(categoryID) 
    SELECT c FROM t OPTION(MAXRECURSION 3000) 
Cuestiones relacionadas