2016-08-22 4 views
0

私は、下記の問い合わせをしました:SQL Serverのループ表

select * from tblA 

このTBLAは、列IDとNAME

を持って、私はこのテーブルからIDを取得し、手順に使用します。

すなわち:

exec spGet ID 

これは右、ループのですか?

どうすればいいですか?

Tnks。

+0

IDのカンマ区切りリストが必要ですか? –

+0

クエリはそれ自身でテーブルのすべてのフィールドを含むレコードセットオブジェクトを返します。 tblAからIDを選択するように変更した場合、SQL Serverの外部のコードで "ループ"する可能性のあるレコードセットをデータベースから取得します...なぜループが必要ですか?データはどのように使用されていますか?データベースを照会するのに.netやその他の言語を使用していますか? – xQbert

+0

[クエリによって返された各行に対して一度ストアドプロシージャを実行するにはどうすればよいですか?](http://stackoverflow.com/questions/886293/how-do-i-execute-a-stored-procedure-once-for-each -row-returned-by-query)/ [SQL - 各レコードのストアドプロシージャを呼び出す](http://stackoverflow.com/questions/2077948/sql-call-stored-procedure-for-each-record) –

答えて

0

このようにしたいのであれば、カーソルを使用できますが、自分が行っていることを再考することを強くお勧めします。

DECLARE @ID INT; 

DECLARE curIteration CURSOR 
FOR 
    SELECT ID 
    FROM tblA; 

OPEN curIteration 
FETCH NEXT FROM curIteration 
INTO @ID; 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    EXECUTE spGet @ID; 

    FETCH NEXT FROM curIteration 
    INTO @ID; 
END 

CLOSE curIteration; 
DEALLOCATE curIteration; 
+0

WOKRS SO良い!ありがとう! :) – jsfelipearaujo

関連する問題