RETURN (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Keluar tanpa syarat dari kueri atau prosedur. RETURN segera dan lengkap dan dapat digunakan kapan saja untuk keluar dari prosedur, batch, atau blok pernyataan. Pernyataan yang mengikuti RETURN tidak dijalankan.
Sintaks
RETURN [ integer_expression ]
Argumen
integer_expression
Adalah nilai bilangan bulat yang dikembalikan. Prosedur tersimpan dapat mengembalikan nilai bilangan bulat ke prosedur panggilan atau aplikasi.
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Jenis Pengembalian
Secara opsional mengembalikan int.
Catatan
Kecuali di dokumentasikan sebaliknya, semua prosedur tersimpan sistem mengembalikan nilai 0. Ini menunjukkan keberhasilan dan nilai bukan nol menunjukkan kegagalan.
Keterangan
Saat digunakan dengan prosedur tersimpan, RETURN tidak dapat mengembalikan nilai null. Jika prosedur mencoba mengembalikan nilai null (misalnya, menggunakan RETURN @status saat @status NULL), pesan peringatan dihasilkan dan nilai 0 dikembalikan.
Nilai status pengembalian dapat disertakan dalam pernyataan Transact-SQL berikutnya dalam batch atau prosedur yang menjalankan prosedur saat ini, tetapi harus dimasukkan dalam formulir berikut: EXECUTE @return_status = <procedure_name>.
Contoh
A. Kembali dari prosedur
Contoh berikut menunjukkan apakah tidak ada nama pengguna yang ditentukan sebagai parameter saat findjobs dijalankan, RETURN menyebabkan prosedur keluar setelah pesan dikirim ke layar pengguna. Jika nama pengguna ditentukan, nama semua objek yang dibuat oleh pengguna ini dalam database saat ini diambil dari tabel sistem yang sesuai.
CREATE PROCEDURE findjobs @nm sysname = NULL
AS
IF @nm IS NULL
BEGIN
PRINT 'You must give a user name'
RETURN
END
ELSE
BEGIN
SELECT o.name, o.id, o.uid
FROM sysobjects o INNER JOIN master..syslogins l
ON o.uid = l.sid
WHERE l.name = @nm
END;
B. Mengembalikan kode status
Contoh berikut memeriksa status untuk ID kontak tertentu. Jika negara bagian adalah Washington (WA), status 1 dikembalikan. Jika tidak, 2 dikembalikan untuk kondisi lain (nilai selain WA untuk StateProvince atau ContactID yang tidak cocok dengan baris).
USE AdventureWorks2012;
GO
CREATE PROCEDURE checkstate @param VARCHAR(11)
AS
IF (SELECT StateProvince FROM Person.vAdditionalContactInfo WHERE ContactID = @param) = 'WA'
RETURN 1
ELSE
RETURN 2;
GO
Contoh berikut menunjukkan status pengembalian dari menjalankan checkstate. Yang pertama menunjukkan kontak di Washington; yang kedua, kontak tidak di Washington; dan yang ketiga, kontak yang tidak valid. Variabel @return_status lokal harus dideklarasikan sebelum dapat digunakan.
DECLARE @return_status INT;
EXEC @return_status = checkstate '2';
SELECT 'Return Status' = @return_status;
GO
Berikut adalah hasil yang ditetapkan.
Return Status
-------------
1
Jalankan kueri lagi, tentukan nomor kontak yang berbeda.
DECLARE @return_status INT;
EXEC @return_status = checkstate '6';
SELECT 'Return Status' = @return_status;
GO
Berikut adalah hasil yang ditetapkan.
Return Status
-------------
2
Jalankan kueri lagi, tentukan nomor kontak lain.
DECLARE @return_status INT
EXEC @return_status = checkstate '12345678901';
SELECT 'Return Status' = @return_status;
GO
Berikut adalah hasil yang ditetapkan.
Return Status
-------------
2
Lihat juga
ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (SQL Bertransaksi)
DECLARE @local_variable (Transact-SQL)
EXECUTE (Transact-SQL)
SET @local_variable (Transact-SQL)
THROW (Transact-SQL)
