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 ...

知っています。SELECT ステートメントの代わりに別のストアド プロシージャを使用した@P = SELECT is wrongを見ました。ストアド プロシージャを使用せずにこれが可能かどうかを知りたいです。もしそうなら、どのように?クエリを 1 つのストアド プロシージャで 1 回だけ使用するだけなので、別のストアド プロシージャにクエリを配置しても意味がありません。私は T-SQL と SQL サーバーに不慣れで、自分でも学んでいます。これがばかげた質問であれば申し訳ありません。

PS: この場合のクエリは、1 つのレコードのみを返す必要があります。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 に答える