0

ID を受け取り、自分のページに表示する必要がある説明フィールドを返す SELECT_DESCRIPTION というプロシージャがあります。

次に、次のような select 句からの多数の ID を持つ新しいプロシージャを作成したいと思います。

SELECT id FROM MYTABLE 

それを SELECT_DESCRIPTION プロシージャに渡すことができるので、同じ数の説明を持つことができます

私がphpを使用していた場合、次のようなことをします:

$sql=”SELECT id FROM MYTABLE”;
$result = mysql_query($sql) //using mysql to make the example faster but TSQL is what I use
or die(mysql_error());  

while($row = mysql_fetch_array( $result )) {
    $newSql = "EXEC SELECT_DESCRIPTION @id = '$row[‘id’]'"; 
//do whatever with $newSql

}

しかし、私は手順を使用する必要があります。それは可能ですか?どうすればいいですか?

ありがとうございます!

4

1 に答える 1

0

では、これらすべてをTSQLで実行したいのでしょうか。このような何かがそれをするでしょう:

DECLARE @tmp TABLE (tmpID INT IDENTITY, tblID INT)
DECLARE @RecordCount INT,
@LoopCount INT,
@ID INT

INSERT INTO @tmp SELECT id FROM MYTABLE
SELECT @RecordCount = COUNT(*) FROM @tmp
SET @LoopCount = 1

WHILE @LoopCount <= @RecordCount
  BEGIN

  SELECT @ID = tblID FROM @tmp WHERE tmpID = @LoopCount
  EXEC SELECT_DESCRIPTION @ID
  SELECT @LoopCount = @LoopCount + 1

  END

@tmpテーブルには、ループを実行しているすべてのデータに連続した行番号(1、2、3、4など)があることを保証するID列があります。

于 2012-10-15T15:59:52.157 に答える