2012-05-12 6 views
6

특정 숫자 (예 : 100)에서 시작하여 다른 특정 숫자 (예 : 3000)에서 끝나는 증분 값을 열에 삽입하는 SQL 쿼리를 작성하려고합니다. 테이블을 SQL Server에 있지만이 작업을 수행하는 방법을 모르겠습니다. 예를 들어SQL Server의 특정 제한된 수를 SQL Server의 열에 삽입합니다.

: 나는 Category에서 categoryID (열)로 3000 (100)를 삽입 할
(테이블)

+0

'categoryID'에 'IDENTITY'가 설정되어 있습니까? 그것은 당신이 데이터베이스 설계에서 나쁜 습관으로 여겨지는 무언가를 시도하는 것처럼 들립니다 : 의미있는 키 값을 가짐. – Filburt

답변

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

같은 것은 정말 감사하지만, 재귀 CTE 사용 :

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)