2013-03-21 42 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' 

所以後來我就可以做這樣的事情

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

我知道@P = SELECT is wrong,我看到了一個example他們用來代替SELECT語句另一個存儲過程,我想知道這是否是可能不使用存儲過程。如果是這樣,怎麼樣?我只會在一個存儲過程中只使用一次查詢,所以我沒有意見將它放入另一個存儲過程中。我是T-SQL和SQL服務器的新手,我也自己學習,如果這是一個愚蠢的問題,我很抱歉。

P.S:這種情況下的查詢應該只返回一條記錄。我正在使用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' 

,以後你可以

UPDATE [SISACT].ACTIVOS_FIJOS set ultimo_periodo = @p 
相關問題