Điều đó phụ thuộc vào bản chất của thông tin bạn muốn trả lại.
Nếu đó là một giá trị số nguyên duy nhất, bạn có thể sử dụng return
tuyên bố
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
Nếu bạn có một giá trị không phải là số nguyên hoặc một số giá trị vô hướng, bạn có thể sử dụng các tham số đầu ra
create proc myproc
@a int output,
@b varchar(50) output
as
begin
select @a = 1, @b='hello'
end
go
declare @i int, @j varchar(50)
exec myproc @i output, @j output
Nếu bạn muốn trả về một tập dữ liệu, bạn có thể sử dụng insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Bạn thậm chí có thể trả về một con trỏ nhưng điều đó thật kinh khủng nên tôi không đưa ra ví dụ :)