2012-05-12 15 views
6

特定の数値(たとえば100)で開始し、別の特定の数値(たとえば3000)で始まるインクリメンタルな数値を、 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) 
関連する問題