在存储过程中执行SQL语句,如何将该SQL语句的结果存储到变量中供以后使用?

时间:2013-03-21 00:52:18

标签: sql-server sql-server-2008 tsql stored-procedures

我需要在存储过程中执行多个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。

感谢您提前提供任何帮助。

1 个答案:

答案 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 
相关问题