- - PR -
SQLserverのストアドでエラー処理をしたい
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-01-28 21:35
■テーブル
テーブル名:Table01 フィールド: s_id オートナンバー(主キー) d_id int seq int テーブルデータサンプル s_id | d_id | seq ------------------- 1 | 1001 | 1 2 | 1001 | 2 3 | 1002 | 1 4 | 1002 | 2 5 | 1002 | 3 ■データinsert用ストアド Alter Procedure sp_01 ( @d_id int ) As INSERT INTO Table01 ( d_id, seq ) SELECT @d_id, Max( seq ) + 1 FROM Table01 WHERE ( d_id = @d_id ) return があります。 このストアドを実行して、抽出条件 d_id の中での seq の最大値に1を足したものをinsertしています。通常はこれでうまくいっているのですが、抽出条件 d_id が一件もヒットしない場合(この場合d_id=1003など)はseqの最大値がとれずに(null?)エラーがかかります。「最大値がとれなかったときは無条件にseqに1をinsertする。。」というふうにしたいのですが、どうやればできるでしょうか。ご教授願います。 |
1
