0

我需要在存储过程中执行几个 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,我看到一个例子,他们使用另一个存储过程而不是 SELECT 语句,我想知道这是否可能不使用存储过程。如果是这样,怎么做?我将只在一个存储过程中使用一次查询,所以我认为将它放在另一个存储过程中没有意义。我是 T-SQL 和 SQL server 的新手,我也在自学,如果这是一个愚蠢的问题,我很抱歉。

PS:这种情况下的查询应该只返回一条记录。我正在使用 SQL SERVER 2008 Express。

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

4

1 回答 1

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 
于 2013-03-21T01:14:56.550 回答