- - PR -
ストアドプロシージャを教えて下さい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-31 15:26
いつもお世話になっています未熟者といいます。
現在SQL Server2005にてレコード追加するストアドプロシージャを 作っています。 内容は authorityテーブル(auhorityid,authorityname)を1レコードづつ読込み パラメータ(empid)で受け取った値を付加して、 tmpempauthoテーブル(empid,authorityid,authorityname,flg)に追加 する仕様なのですが、その際にempid + authorityidをキーに empauthorityテーブル(empid,authorityid)を検索して存在すれば tmpempauthoテーブルのflgにtrueをセット無ければfalseをセット します。 上記の仕様でempauthorityテーブルを検索する記述が恥ずかしながらわかりません。 以下がコーディング途中内容です。 ご教授方宜しくお願いします。 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[kengenlist] as begin declare @EmpID int declare @AuthorityID int declare @AuthorityName char -- カーソル定義 declare Authority cursor for select * from MAuthority declare EmpAuthority cursor for select * from MEmployeeAuthority where EmployeeID = @EmpID declare tmpempautho cursor for select * from tmpempautho -- カーソルオープン open Authority -- 1件目読込 fetch Authority into @AuthorityID,@AuthorityName -- データ取得 while (@@fetch_status=0) begin -- authorityテーブルがeofになるまで繰り返す。 fetch next from Authority into @AuthorityID,@AuthorityName 検索処理? -- tmpempauthoテーブルに出力 出力処理 end -- 終了処理 close Authority close empauthority close tmpempautho end | ||||
|
投稿日時: 2006-05-31 16:56
こういうソース丸投げに近い質問は、たぶんみなさん敬遠して回答しないですよ。
(私も回答する気にはなれないですし) もう少し、質問の手法を変えてみては如何でしょうか。 (ソース丸投げにならないよう、出来るだけ的を絞るとか) | ||||
|
投稿日時: 2006-05-31 17:27
その前にインターネットでの検索の仕方がわからんのだよな。 | ||||
|
投稿日時: 2006-05-31 17:55
自分勝手に質問をいたしまして申し訳ありませんでした。
現在、悩んでいますのは元となるテーブル(authority)を1件毎に読み込み 読み込んだデータを元に別のテーブル(empauthority)を検索する時のコーディング なのですが,検索対象となるテーブルに対してのselect文にて存在チェックする ことは可能でしょうか? 上手く説明が出来ないのですが、自分なりに考えたコーディングを以下に記述しました 宜しくご教授の方お願いします。 -- パラメータ定義 declare @EmpID int -- カーソルオープン open Authority open empauthority -- 1件目読込 fetch Authority into @AuthorityID,@AuthorityName while (@@fetch_status=0) begin -- authorityテーブルがeofになるまで繰り返す。 fetch next from Authority into @AuthorityID,@AuthorityName if ((select count(*) from empauthority where empid = @empid and authorityid = @authorityid) > 0 処理A lese 処理B end if | ||||
|
投稿日時: 2006-05-31 18:44
細かいことを抜きにすれば、そのコードで間違っていないと思います。
が、authority表をフェッチする際にempauthority表を外部結合すればいいんジャマイカ? | ||||
|
投稿日時: 2006-06-01 09:33
Yamさん、皆さんありがとうございます。
頑張ってやってみます。 お騒がせしましてすいませんでした |
1