- - PR -
【C#・MSSQL】COUNTの結果をINSERTしたい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-22 13:33
>ぶさいくろうさん
いえ、普段別の方の回答に対しては回答されているのを存じています。 これからもよろしくお願いいたします。 ところで、カウントするテーブルと挿入するテーブルが一緒というのは、例えば無限ループでカウントが増え続けるといったようなことは想像できますが、それ以外に何か「SQLのシステム的によくない」といったような、慣習的によくないことが起こるのでしょうか? ちょっと曖昧な表現ですが、いわゆるほかの方が「なんとなくしない」ようなことであれば、できるだけ避けようと思いますので、お手数ですがご回答いただければと思います。 _________________ ◇◇◇ 社内SEを兼務する文系プログラマです。 ◇◇◇ WinXP VisualStudio2005(C#メイン) MS・SQLServer とかを使っています。 ◇◇◇ 周囲にプログラマがいないので、みなさんだけが頼りですヽ(`Д´;ノ | ||||
|
投稿日時: 2006-09-22 13:39
私には難しくてよくわからない_| ̄|○ | ||||
|
投稿日時: 2006-09-22 13:45
ああ、申し訳ありませんorz
言い直します。 1日にいくつデータが出てくるかがわからないので、日付を主キーにすると重複がおこります。また、そのデータも出てくる検索して出てくる順番にも意味があり、単純に自動で番号を割り振ることもできないので、出てきた順番にIDを割り振ろうと思い、カウントさせてそのカウント数をIDに割り振ろうとしました。 _________________ ◇◇◇ 社内SEを兼務する文系プログラマです。 ◇◇◇ WinXP VisualStudio2005(C#メイン) MS・SQLServer とかを使っています。 ◇◇◇ 周囲にプログラマがいないので、みなさんだけが頼りですヽ(`Д´;ノ | ||||
|
投稿日時: 2006-09-22 14:15
引用したあたりがよくわからなかったので間違ってたらすいません。 現状> 日付+その日の連番 であれば別にIDの自動採番でも問題ない気がします。 PrimaryKeyも1つで済みますし。 (結局検索時は日付条件でもってくるのですよね?) | ||||
|
投稿日時: 2006-09-22 14:18
select max(id) + 1 as Maxid from hogehoge
必要最小限のコードを書くとこんな感じ | ||||
|
投稿日時: 2006-09-22 14:32
>eterniaさん
ご回答ありがとうございます。 今後、その行数をカウントした値を使おうかと思っていましたが……そうですね、現状ではその値は使わなくてもできますので、使わない方向で進めることも考えてみたいと思います。間に合うことが第一なので(´Д`; >七味唐辛子さん ご回答ありがとうございます。 参考にさせていただきます。 _________________ ◇◇◇ 社内SEを兼務する文系プログラマです。 ◇◇◇ WinXP VisualStudio2005(C#メイン) MS・SQLServer とかを使っています。 ◇◇◇ 周囲にプログラマがいないので、みなさんだけが頼りですヽ(`Д´;ノ | ||||
|
投稿日時: 2006-09-22 14:52
いえ、行をカウントした値を入れるわけではなく
テーブルの設定で自動採番したらいいのでは?という意味です。 一緒にINSERTと行のカウントをしたことがないので微妙ですが…… 全く同時刻に同じ処理が動いた場合は同じ値が入らないのですかね? | ||||
|
投稿日時: 2006-09-22 15:10
設計し直した方が良いですよ。
カウント数をプライマリキーにするんですよね。レコードが削除される事があるなら、プライマリキーが重複する事になりますがその辺りの考慮はされてますか? 他の方が仰っているように、こういう場合は自動採番が普通かな、と思います。
一度にクエリを実行すれば問題ないと思います。別々に発行するなら、ロックするなりしないと駄目ですよね。 _________________ 囚人のジレンマな日々 |