sql >> データベース >  >> RDS >> Sqlserver

INSERT INTO 反復ごとに値をインクリメントするにはどうすればよいですか?

    row_number を使用 行に連番を与える関数

    insert into Table1 (column1,column2)
    select 
        (select max(column1) from Table1) + row_number() over (order by T2.anotherColumn),
        T2.anotherColumn
    from Table2 as T2
      

    またはより安全なバージョン (Table1 に行がなくても機能します):

    insert into Table1 (column1,column2)
    select 
        isnull(T1.m, 0) + row_number() over (order by T2.anotherColumn),
        T2.anotherColumn
    from Table2 as T2
        outer apply (select max(column) as m from Table1) as T1
      

    1. MySQLトランザクション:SELECT + INSERT

    2. postgresデータベースに接続するC#

    3. MariaDBでのEXP()のしくみ

    4. MySQLShowDatadictionaryのテーブル