Bagikan melalui


Parameter

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Parameter digunakan untuk bertukar data antara prosedur dan fungsi yang disimpan dan aplikasi atau alat yang disebut prosedur atau fungsi tersimpan:

  • Parameter input memungkinkan pemanggil untuk meneruskan nilai data ke prosedur atau fungsi yang disimpan.
  • Parameter output memungkinkan prosedur tersimpan untuk meneruskan nilai data atau variabel kursor kembali ke pemanggil. Fungsi yang ditentukan pengguna tidak dapat menentukan parameter output.
  • Setiap prosedur tersimpan mengembalikan kode pengembalian bilangan bulat ke pemanggil. Jika prosedur tersimpan tidak secara eksplisit menetapkan nilai untuk kode pengembalian, kode pengembalian adalah 0.

Prosedur tersimpan berikut menunjukkan penggunaan parameter input, parameter output, dan kode pengembalian:

-- Create a procedure that takes one input parameter and returns one output parameter and a return code.
CREATE PROCEDURE SampleProcedure @EmployeeIDParm INT,
         @MaxTotal INT OUTPUT
AS
-- Declare and initialize a variable to hold @@ERROR.
DECLARE @ErrorSave INT
SET @ErrorSave = 0

-- Do a SELECT using the input parameter.
SELECT FirstName, LastName, JobTitle
FROM HumanResources.vEmployee
WHERE EmployeeID = @EmployeeIDParm

-- Save any nonzero @@ERROR value.
IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Set a value in the output parameter.
SELECT @MaxTotal = MAX(TotalDue)
FROM Sales.SalesOrderHeader;

IF (@@ERROR <> 0)
   SET @ErrorSave = @@ERROR

-- Returns 0 if neither SELECT statement had an error; otherwise, returns the last error.
RETURN @ErrorSave
GO

Saat prosedur atau fungsi tersimpan dijalankan, parameter input dapat mengatur nilainya ke konstanta atau menggunakan nilai variabel. Parameter output dan kode pengembalian harus mengembalikan nilainya ke dalam variabel. Parameter dan kode pengembalian dapat bertukar nilai data dengan variabel Transact-SQL atau variabel aplikasi.

Jika prosedur tersimpan dipanggil dari batch atau skrip, parameter dan nilai kode pengembalian dapat menggunakan variabel Transact-SQL yang ditentukan dalam batch yang sama. Contoh berikut adalah batch yang menjalankan prosedur yang dibuat sebelumnya. Parameter input ditentukan sebagai parameter konstanta dan output dan kode pengembalian menempatkan nilainya dalam variabel Transact-SQL:

-- Declare the variables for the return code and output parameter.
DECLARE @ReturnCode INT
DECLARE @MaxTotalVariable INT

-- Execute the stored procedure and specify which variables
-- are to receive the output parameter and return code values.
EXEC @ReturnCode = SampleProcedure @EmployeeIDParm = 19,
   @MaxTotal = @MaxTotalVariable OUTPUT

-- Show the values returned.
PRINT ' '
PRINT 'Return code = ' + CAST(@ReturnCode AS CHAR(10))
PRINT 'Maximum Quantity = ' + CAST(@MaxTotalVariable AS CHAR(10))
GO

Aplikasi dapat menggunakan penanda parameter yang terikat ke variabel program untuk bertukar data antara variabel aplikasi, parameter, dan kode pengembalian.

Lihat Juga

CREATE PROCEDURE (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
CREATE FUNCTION (Transact-SQL)
Parameter dan bagian Penggunaan Kembali Rencana Eksekusi
Variabel (Transact-SQL)