1

SQL Serverでは、既存のテーブルに375の行を挿入しようとしています。IDの列が見つからない既存のテーブルに複数の挿入

テーブルにID列はありませんが、ID列は一意で、375行ごとに一意のIDを入力します。 max(id)+1を実行しようとしましたが、375行すべてに対して同じIDが挿入され、データが乱雑になりました。 idの列を変更することはできません。なぜなら、テーブルには100万以上の行があるからです。以下のように

コード:

declare @id int 

set @id = select max(id) from tablename; 

Insert into tablename (id, column 1, column 2, column 3, ..... column 20) 
    select @id + 1, column1, column2, column 3, ........, column 20 
    from tablename1 
    where column15 IN (1,2,3,4,.........,375) 
+0

作成する「SEQUENCE」 – Sami

+0

もう少し説明してください。 – Shinu

+0

あなたはこのようなことをすることができます... 'select @id + ROW_NUMBER()Over(Column1 by Column1 by Order1)' –

答えて

0

方法だけrow_numberを使用について。

declare @id int 

set @id = (select max(id) from tablename) 

Insert into tablename (id, column 1, column 2, column 3, ..... column 20) 

select 
    row_number() over (order by (select null)) + @id, 
    column1, 
    column2, 
    column 3, 
    ........, 
    column 20 
from tablename1 
+1

ありがとうございます。出来た :) – Shinu

関連する問題