プロが教える店舗&オフィスのセキュリティ対策術

社内向けシステムDBの更新作業を行っています。
システム上ではテーブルレコードがコンボボックスの形で
格納順に表示されてしまいます。

ただこの表示順がカテゴリー順になっていないのでとても選択しにくいです。
そこでレコードをカテゴリー順に並びかえテーブルを更新したい(SELECTで並び替えた状態で更新したい)のですがどうやればよろしいでしょうか?

A 回答 (3件)

まず大前提としてSELECTはorder by句でソート順を指定しないと順番は保証されません。



SQL Serverの場合、デフォルトだとプライマリーキー順にデータがソートされた状態で物理的に格納されます。なのでorder byを指定しないとプライマリーキー順で表示される場合が多いです。
プライマリーキーがないとインサート順で表示されているように見えることもありますが、保証された動きではありません。SQLの実行計画次第で変ります。

なのでSELECT時にORDER BY句でソート順を指定するのが正しいです。
abc123等の並びででソートできないような内容の場合は、ソート用の項目を作成することもあります。

この回答への補足

回答ありがとうございます!

説明が大分たらなかったので補足させていただきます。
今編集しているのは主キー(数値:順に振っているだけのコード)と名称という列しかないテーブルです。

ただ、この主キーがメインテーブルのフォーリンキーとしてリンクしているため編集テーブル上の主キーをいじれない状態です。

現在は編集テーブル上の主キー順にレコードが並んでおり、その順番通りにブラウザのプルダウンに名称が表示されてしまいます。
名称には相関性がありますので、ユーザーが選択しやすいように名称の順にテーブルのレコードをソートし更新してプルダウンに反映させたいと考えているのですが、可能でしょうか?

補足日時:2009/10/27 01:08
    • good
    • 0
この回答へのお礼

アドバイス頂きありがとうございました。
自己解決いたしました。

SELECTで抽出した内容をINSERTでsql保存しておき、全行デリートしてからsqlを実行で順番の更新ができました。

お礼日時:2009/10/27 12:37

#1です。


SSMSでテーブルを直接開いて編集しているのであれば、
ツールバーから「抽出条件ペインの表示」を選んで、たとえば以下のように条件を指定し、実行すれば並び順を希望のものにしたまま編集できます。
「テーブルレーコードをソートして更新するに」の回答画像3

この回答への補足

ご回答ありがとうございます!

SELECT文で希望の並び順で抽出したままの順番でテーブルを更新したいのですが、無理でしょうか?

補足日時:2009/10/27 01:31
    • good
    • 0
この回答へのお礼

アドバイス頂きありがとうございました。
自己解決いたしました。

SELECTで抽出した内容をINSERTでsql保存しておき、全行デリートしてからsqlを実行で順番の更新ができました。

お礼日時:2009/10/27 12:36

そもそもの部分が書かれていないとわかりませんね。



・SQL Serverの話ですか?であればバージョンは?
・EnterpriseManagerやSQL Server Management Studioで更新しているのですか?
 それともAccessやVBによるアプリケーションを使って更新しているのですか?
・後者だとすれば、どんなインターフェースのどんな画面なのですか?
 (コンボボックスには何が表示されていて、選んだあとどうやったら更新される画面なのですか?)
 そしてそのソースを変更する権限は質問者さんにはあるのですか?

この回答への補足

SQL Server2005でSQL Server Management Studioで更新を行っております。

コンボボックスうんぬんはテーブルを参照して表示する
ブラウザでの話ですので関係なかったですね。

SQL Server Management Studioでテーブルのレコード順を並び替えて
更新したいということです。

補足日時:2009/10/26 17:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A