SQL Serverでのダミーデータ作成


以下の様なテーブルがあるとします。

table:m_tbl

[code]

    ID  AreaCode
    --- ---
    1   0000000001
    2   0000000002
    3   0000000003
    4   0000000021
    5   0000000044
    .   .
    .   .
    .   .
    
[/code]

  * IDが主キー
  * AreaCodeの重複は可
  * データは50万件

これらのデータを利用してIDを振り直しながら500億件(50,000,000,000)のデータを登録したいと考えています。

こういった場合、どのようなSQL文になるでしょうか？




`INSERT ～ SELECT ～`を10回実行すればよいのではないでしょうか。

[code]

    INSERT INTO other (AreaCode)
    SELECT AreaCode FROM m_tbl
    
[/code]

上記は`ID`が`IDENTITY`列という想定で省略していますが、必要であれば適当に追加してください。

繰り返し部分もTransact-SQLで記述するのであれば`WHILE`ステートメントを使用して以下のようになります。

[code]

    DECLARE
        @i int = 1;
    BEGIN
        WHILE @i <= 10
            BEGIN
    
                INSERT INTO other (AreaCode)
                SELECT AreaCode FROM m_tbl;
    
                SET @i = @i + 1;
    
            END
    END
    
[/code]

