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

Thủ tục được lưu trữ - trả về danh tính dưới dạng tham số đầu ra hoặc đại lượng vô hướng

Một tùy chọn khác sẽ là giá trị trả về cho thủ tục được lưu trữ (mặc dù vậy, tôi không đề xuất điều này, vì điều đó thường tốt nhất cho các giá trị lỗi).

Tôi đã bao gồm nó như cả hai khi nó chèn một hàng trong trường hợp thủ tục được lưu trữ đang được sử dụng bởi cả các thủ tục SQL khác và giao diện người dùng không thể hoạt động với các tham số OUTPUT (Tôi tin rằng IBATIS trong .NET):

CREATE PROCEDURE My_Insert
    @col1            VARCHAR(20),
    @new_identity    INT    OUTPUT
AS
BEGIN
    SET NOCOUNT ON

    INSERT INTO My_Table (col1)
    VALUES (@col1)

    SELECT @new_identity = SCOPE_IDENTITY()

    SELECT @new_identity AS id

    RETURN
END

Tham số đầu ra dễ làm việc hơn trong T-SQL khi gọi từ các thủ tục được lưu trữ khác IMO, nhưng một số ngôn ngữ lập trình có hỗ trợ kém hoặc không hỗ trợ cho các tham số đầu ra và hoạt động tốt hơn với các tập kết quả.



  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 tham chiếu các khóa JSON có chứa các ký tự đặc biệt khi sử dụng OPENJSON, JSON_QUERY và JSON_VALUE (SQL Server)

  2. Danh sách các toán tử so sánh máy chủ SQL

  3. Làm cách nào để chuyển đổi DateTimeOffset của Sql Server 2008 thành DateTime

  4. Tôi có nên sử dụng! =Hoặc <> cho T-SQL không?

  5. Chuyển đổi văn bản hộp văn bản thành số nguyên