首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 讀取預存程序 OUTPUT 參數:正確呼叫模式

     編輯:關於SqlServer

預存程序定義

CREATE PROCEDURE GetVar
    @Var VARCHAR(50) OUTPUT
AS
BEGIN
    SET @Var = 'This is a Var String!';
    SELECT @Var;  -- 也可回傳結果集
END
GO

正確呼叫方式:必須加 OUTPUT

DECLARE @aa VARCHAR(50);
EXEC GetVar @aa OUTPUT;  -- 關鍵在這裡!
PRINT @aa;  -- 輸出: This is a Var String!

常見錯誤

-- 錯誤:忘記 OUTPUT
EXEC GetVar @aa;  -- @aa 仍為 NULL

ADO.NET 整合範例

using (var cmd = new SqlCommand("GetVar", conn) { CommandType = CommandType.StoredProcedure })
{
    var p = cmd.Parameters.Add("@Var", SqlDbType.VarChar, 50);
    p.Direction = ParameterDirection.Output;
    cmd.ExecuteNonQuery();
    Console.WriteLine(p.Value);  // 取得輸出值
}

多重 OUTPUT 參數

CREATE PROC GetStats
    @Count INT OUTPUT,
    @MaxVal INT OUTPUT
AS
SELECT @Count = COUNT(*), @MaxVal = MAX(col) FROM table1;
GO

DECLARE @c INT, @m INT;
EXEC GetStats @c OUTPUT, @m OUTPUT;
SELECT @c AS TotalCount, @m AS MaxValue;

核心口訣:定義用 OUTPUT,呼叫也要用 OUTPUT,雙邊缺一不可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved