2012-10-15 4 views
0

ID를 받고 내 페이지에 표시해야하는 설명 필드를 반환하는 SELECT_DESCRIPTION이라는 프로 시저가 있습니다. 그래서 설명TSQL : SELECT 절에서 저장 프로 시저로 ID 전달

같은 수를 가질 수

SELECT id FROM MYTABLE 

가 SELECT_DESCRIPTION 절차에 전달할 수 :

는 지금은 이런 select 절에서 오는 ID의 번호를 갖는 새로운 절차를 만들려면

내가 같은 일을 할 것입니다 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 

} 

하지만이 절차를 사용해야합니다. 그것을 할 수 있습니까? 내가 어떻게 해?

감사합니다.

+0

PHP 소스별로 mysql에 태그 붙이기 –

+0

mysql 구문을 모르지만 SELECT ID 만 SELECT_DESCRIPTION (id) from MYTABLE, 아니요 가능합니까? –

+0

죄송합니다, 아니 mysql하지만 TSQL PHP는 뭔가를 안내, 더 빨리 만들 수 – user523129

답변

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 열이 있습니다.

+0

위대한, 감사합니다! 하지만 @tmpTable을 선언해야합니까 ?? – user523129

+0

그건 오타였습니다. 그냥 @tmp 여야합니다. – Jim

관련 문제