我需要在存储过程中执行多个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 :(得分:2)
我认为你想要的是什么。
SET NOCOUNT OFF
DECLARE @P as CHAR(6)
SELECT p@ = 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