Không, bạn có thể tự trả lại thứ gì đó
ví dụ
CREATE PROC pr_test AS
SELECT 1/0
RETURN 0
GO
Bây giờ hãy chạy nó
DECLARE @i INT
exec @i = pr_test
SELECT @i -- will be 0
DROP PROC pr_test
Bây giờ chúng ta hãy làm điều đó một lần nữa mà không cần câu lệnh return
CREATE PROC pr_test2 AS
SELECT 1/0
GO
DECLARE @i INT
exec @i = pr_test2
SELECT @i -- will be - 6
Tốt hơn nên sử dụng output parameter
để chuyển lại các trạng thái và hoặc tin nhắn