• 締切済み

SQLServerで一意の項目がない場合の行番

こんにちは。 SQLServerで一意の項目がある場合はROW_NUMBERを使用すると思うのですが、 もし一意の項目がない場合は、どのようにテーブルやビューに行番号を ふればよいでしょうか。 お手数ですが教えていただけると幸いです。 よろしくお願いいたします。

みんなの回答

noname#223464
noname#223464
回答No.2

質問の意図がちょっと良く分からないので検討ちがいかもしれませんが・・・。 ROW_NUMBERを使用するのであれば、普通にOVERの中でORDER BYで並び替えれば良いのでは? テーブルに行番号のような連番を入れたいのであれば、2008R2までだったらIDENTITY+ユニークでも良いけれど、2010以降だったら強制シャットダウンしてしまった時の仕様が変わってる(型によって+1000とかされ気持ち悪い)から、計算できる型か、もしくは文字列型(文字数固定がおすすめ)で、現在のMaxを取得してその次の値を設定するのが良いのではないでしょうか?

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

int型の列を作って、IDENTITYの指定で「IDである」を「はい」にして、「IDの増分」を「1」にするといいかと思います。