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

Tôi có thể có tham số OUTPUT tùy chọn trong một quy trình được lưu trữ không?

Cả hai tham số đầu vào và đầu ra đều có thể được gán giá trị mặc định. Trong ví dụ này:

CREATE PROCEDURE MyTest
  @Data1 int
 ,@Data2 int = 0
 ,@Data3 int = null output

AS

PRINT @Data1
PRINT @Data2
PRINT isnull(@Data3, -1)

SET @Data3 = @Data3 + 1

RETURN 0

tham số đầu tiên là bắt buộc, còn tham số thứ hai và thứ ba là tùy chọn - nếu không được thiết lập bởi quy trình gọi, chúng sẽ được gán các giá trị mặc định. Hãy thử làm rối với nó và quy trình cuộc gọi kiểm tra sau đây trong SSMS bằng cách sử dụng các giá trị và cài đặt khác nhau để xem cách tất cả hoạt động cùng nhau.

DECLARE @Output int

SET @Output = 3

EXECUTE MyTest
  @Data1 = 1
 ,@Data2 = 2
 ,@Data3 = @Output output

PRINT '---------'
PRINT @Output


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo bí danh kiểu dữ liệu do người dùng xác định trong SQL Server bằng T-SQL

  2. Thứ tự có điều kiện T-SQL theo

  3. Đặt lại AutoIncrement trong SQL Server sau khi Xóa

  4. TẠO CHẾ ĐỘ XEM phải là câu lệnh duy nhất trong lô

  5. Sự cố tham số đầu ra của SQL Server