Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách trả về đầu ra của thủ tục đã lưu trữ thành một biến trong máy chủ sql

Đ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ụ :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chuyển đổi bigint (dấu thời gian UNIX) thành datetime trong SQL Server?

  2. Cách chỉ trả lại giá trị số trong SQL Server

  3. Thực thi tập hợp các truy vấn SQL bằng cách sử dụng tệp loạt?

  4. Cách tìm định dạng ngày được sử dụng cho một ngôn ngữ cụ thể trong SQL Server (T-SQL)

  5. Cách hàm TRANSLATE () hoạt động trong SQL Server (T-SQL)