2013-03-21 1 views
0

저장 프로 시저 내에서 여러 SQL 문을 실행하고 나중에 사용하기 위해 결과를 변수에 저장해야합니다.저장 프로 시저 내에서 SQL 문을 실행하는 중, 나중에 사용하기 위해 해당 SQL 문의 결과를 변수에 저장하는 방법은 무엇입니까?

SET NOCOUNT OFF 
    DECLARE @P TABLE 
    @P = SELECT d.Periodo 
    from [SISACT].DEPRECIACIONES d, [SISACT].CONTROL_PERIODO c 
    where c.vigente = 1 AND d.Periodo = c.periodo 

    IF @@ROWCOUNT > 0 
    PRINT 'Periodo ya depreciado' 

그래서 나중에 내가 내가 @P = SELECT is wrong을 알고이

UPDATE [SISACT].ACTIVOS_FIJOS set ultimo_periodo = @p.periodo ... 

같은 것을 할 수있는, 나는 그들이 대신에 SELECT 문의 또 다른 저장 프로 시저를 사용하는 경우 example, 난이 있는지 알고 싶어했다 가능하면 저장 프로 시저를 사용하지 않아도됩니다. 그렇다면 어떻게? 하나의 저장 프로 시저에서 한 번만 쿼리를 사용하여 다른 저장 프로 시저에 넣지 않아도됩니다. 나는 T-SQL과 SQL 서버에 익숙하지 않다. 나는 내 자신도 배우고 있는데, 바보 같은 질문이라면 유감이다.

P .:이 경우 쿼리는 하나의 레코드 만 반환해야합니다. SQL Server 2008 Express를 사용하고 있습니다.

사전에 도움을 주셔서 감사합니다.

+0

나중에 사용할 수 d.Periodo 정수는? 두 개 이상의 행을 저장할 때 일반적으로 사용되는 테이블 변수 ... – Borik

+0

아니요, periodo는 CHAR (6)이며 게시 된 예제를 따르고 있습니다. – Splendonia

답변

2

내가 원하는 것 같아.

SET NOCOUNT OFF 
    DECLARE @P as CHAR(6) 
    SELECT [email protected] = d.Periodo from [SISACT].DEPRECIACIONES d, [SISACT].CONTROL_PERIODO c where c.vigente = 1 AND d.Periodo = c.periodo 
    IF @@ROWCOUNT > 0 
    PRINT 'Periodo ya depreciado' 

왜 u는 테이블 변수를 사용하는

UPDATE [SISACT].ACTIVOS_FIJOS set ultimo_periodo = @p 
관련 문제