2016-08-10 11 views
0

INSERT INTO文で対象テーブルに挿入するレコード数を維持するために:INTOステートメント上記のINSERTでSQL:私はこのようなクエリ持ってどのように

declare @guidd nvarchar(10) 
     set @guidd = '11233' 
     create table rrr_temp(value nvarchar(10), value2 int) 
     create table rrr_tempA(valueA nvarchar(10), guidd nvarchar(10), ranks int) 
     insert into rrr_temp values('AAA', 200) 
     insert into rrr_temp values ('BBB', 400) 
     insert into rrr_temp values ('CCC', 300) 

     INSERT INTO rrr_tempA(valueA , guidd , ranks) 
      SELECT RT.value, @guidd , row_number() over (order by (select NULL)) 
      FROM rrr_temp(nolock) RT 
      INNER JOIN 
       (SELECT value, min(value2) AS lastLeg 
       FROM rrr_temp(nolock) RTL    
       GROUP BY value) GrpRoute 
      ON RT.value = GrpRoute.value 
      ORDER BY value2 
      select * from rrr_tempA 

を、私は、ソースの唯一のレコード番号を挿入することができていますrow_number()over(order by(select NULL))を使用して、ターゲット表の 'rank'列の表(rrr_temp)を作成します。しかし、私はターゲットテーブルが挿入されたときに番号を増分したい。 IDENTITYは使用できません。ありがとう。

+1

ここで何をしようとしているのか分かりません。なぜアイデンティティを使用できないのですか? NOLOCKヒントのポイントは何ですか?テーブルをロックすることはできません。クエリを作成する直前にテーブルを作成することができます。ヒントを使用する場合は、WITHキーワードを含める必要があります。省略すると、非推奨になります。また、一時テーブルのように動作する永続テーブルではなく、一時テーブルを使用しないでください。このヒントをどこにでも吹きつけ続ける前に、この記事を見てみてください。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –

+0

アイデンティティを使用したくない場合は、現在の最大キー値を取得したサブクエリを選択してからインクリメントすることができますそれ。 – Cato

+0

上記のクエリを使用すると、ターゲットテーブルのデータは、( 'AAA'、200、1)、( 'CCC'、300,3)となります。 、( 'BBB'、400,2)。しかし、私の予想される出力は、:('AAA'、200、1)、( 'CCC'、300,2)、( 'BBB'、400,3)です。それが明快になることを願っています。ランク列は1,3,2を表示しています...しかし、1,2,3のようにしたいです。 – user1587872

答えて

0

このようなことについてお尋ねしますか?

select @max_rank = max(ranks) 
from rrr_tempA 

set @max_rank = IsNull(@max_rank, 0) 

INSERT INTO rrr_tempA(valueA , guidd , ranks) 
SELECT RT.value, @guidd , @max_rank + row_number() over (order by (select NULL)) 
+0

返信いただきありがとうございます。しかし、目標を達成するためには、「AAA」、「200,1」、「CCC」、「300,2」、「BBB」、400,3)のような記録が必要です。これらのRANKINGはGUIDDで行うべきです。したがって、列のMAXを使用することはできません。 – user1587872

+0

「GUIDD wise」 - あなたが何を意味するかわかりません。 –

関連する問題