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

IDのリストに基づくSQL LOOP INSERT

    これがあなたが求めているものです。

    declare @IDList table (ID int)
    
    insert into @IDList
    SELECT id
    FROM table1
    WHERE idType = 1
    
    declare @i int
    select @i = min(ID) from @IDList
    while @i is not null
    begin
      INSERT INTO table2(col1,col2,col3) 
      SELECT col1, col2, col3
      FROM table1
      WHERE col1 = @i AND idType = 1
    
      select @i = min(ID) from @IDList where ID > @i
    end
    

    しかし、ループ内でこれだけを行う場合は、代わりに Barry からの回答を実際に使用する必要があります。



    1. タイムスタンプ列mysqlのエラー

    2. SQL Serverで「smalldatetime」を「datetime2」に変換します(T-SQLの例)

    3. クラス com.microsoft.sqlserver.jdbc.SQLServerDriver を読み込めませんか?

    4. エラー:テーブル'<table-name>'のユーザー'<userid>'@'<ip-address>'に対してコマンドが拒否されました