2012-05-12 20 views
6

Voglio scrivere una query SQL che inserisce numeri incrementali che iniziano in un numero specifico (ad esempio 100) e termina in un altro numero specifico (ad esempio 3000) in una colonna di un tabella in SQL Server, ma non so come farlo.Inserire numeri limitati specifici in una colonna in SQL Server

Per esempio:
voglio inserire 100-3000 in categoryID (colonna) da Category (tabella)

ringrazio molto

+0

Il 'categoryID' ha impostato 'IDENTITY'? Sembra che tu stia cercando di fare qualcosa che è considerato una cattiva pratica nella progettazione di database: avere valori chiave significativi. – Filburt

risposta

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

Stessa cosa, ma utilizzando CTE ricorsiva:

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) 
Problemi correlati