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

別のストアド プロシージャ内のストアド プロシージャの出力パラメータを返す

    これが実際には出力パラメーターの問題ではなく、結果セットの問題である場合は、SpWithOutputID を推測してください。 このようなことを行います (SELECT を返します) 1 行 1 列):

    CREATE PROCEDURE dbo.SpWithOutputID
    AS
    BEGIN
        SET NOCOUNT ON;
    
        SELECT ID = 4;
    END
    GO
      

    次に Test1 次のようになります:

    CREATE PROCEDURE dbo.Test1
    AS
    BEGIN
        SET NOCOUNT ON;
    
        DECLARE @ID INT;
    
        CREATE TABLE #x(ID INT);
    
        INSERT #x EXEC dbo.SpWithOutputID;
    
        SELECT TOP (1) @ID = ID FROM #x;
    
        DROP TABLE #x;
    END
    GO
      

    しかし、それはあなたにとって本当に面倒に見えませんか?単一のスカラー値に対しては、実際にはこのように動作するはずです:

    CREATE PROCEDURE dbo.SpWithOutputID
        @ID INT OUTPUT 
    AS
    BEGIN
        SET NOCOUNT ON;
    
        SELECT @ID = 4; 
    END 
    GO
      

    実際に出力パラメーターを使用することがはるかに簡単になりました:

    CREATE PROCEDURE dbo.Test1
    AS
    BEGIN
        SET NOCOUNT ON;
        DECLARE @ID INT;
    
        EXEC dbo.SpWithOutputID @ID = @ID OUTPUT;
    
        SELECT @ID;
    END
    GO
      


    1. MariaDBまたはMySQLデータベースの物理バックアップを作成する

    2. Mysqljsonベースのトレンドタグの実装

    3. 空間ポイントタイプを使用したMySQLへのLatLng値の保存

    4. Oracle-列のデフォルト値の比較