sql >> データベース >  >> RDS >> Sqlserver

ストアドプロシージャの出力をSQLServerの変数に返す方法

    それはあなたが返したい情報の性質に依存します。

    単一の整数値の場合は、returnを使用できます。 ステートメント

     create proc myproc
     as 
     begin
         return 1
     end
     go
     declare @i int
     exec @i = myproc
    

    整数以外の値、または複数のスカラー値がある場合は、出力パラメーターを使用できます

    create proc myproc
      @a int output,
      @b varchar(50) output
    as
    begin
      select @a = 1, @b='hello'
    end
    go
    declare @i int, @j varchar(50)
    exec myproc @i output, @j output
    

    データセットを返したい場合は、insert execを使用できます。

    create proc myproc
    as 
    begin
         select name from sysobjects
    end
    go
    
    declare @t table (name varchar(100))
    insert @t (name)
    exec myproc
    

    カーソルを返すこともできますが、それは恐ろしいので、例を挙げません:)



    1. mysqlIndexingのパフォーマンスをチェックする方法はありますか

    2. PostgreSQLの将来のテーブルに対する特権を付与しますか?

    3. どちらの時系列データベースが優れているか:TimescaleDBとInfluxDB

    4. 柔軟で管理しやすい部品表(BOM)設計