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

Làm thế nào để đặt kết quả của thủ tục được lưu trữ thực thi thành một biến?

Thay vì:

SET @S=EXEC spGetNthNo @a,@d,@n

Bạn cần:

EXEC @S = spGetNthNo @a,@d,@n

Và sau đó trong thủ tục, bạn cần một cái gì đó như:

RETURN 100

hoặc:

RETURN @x

cho giá trị bạn muốn cho @S sau khi thủ tục thực thi.

Bạn cũng có thể sử dụng các tham số đầu ra. Ví dụ kết hợp:

IF OBJECT_ID('tempdb..#example') IS NOT NULL DROP PROCEDURE #example
GO

CREATE PROCEDURE #example
  @output_param INT OUTPUT
AS BEGIN
   SET @output_param = 100
   RETURN 200
END
GO

DECLARE @return INT, @param INT
EXEC @return = #example @output_param = @param OUTPUT
SELECT @return as [return value], @param as [output parameter]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chi phí cho khoảng không quảng cáo nhập trước - xuất trước (FIFO)

  2. Sử dụng thuật sĩ Nhập để nhập dữ liệu Excel vào bảng trong SQL Server 2012 không thành công - cắt bớt văn bản

  3. Làm cách nào để định dạng thời gian từ dd:hh:mm:ss thành chỉ hh:mm:ss trong máy chủ SQL?

  4. Thay đổi tên cột động trong sql

  5. Cách đọc nhiều tập kết quả được trả về từ một thủ tục được lưu trữ trên SQL Server trong R