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

Làm cách nào để sử dụng mệnh đề OUTPUT của câu lệnh INSERT để nhận giá trị nhận dạng?

Bạn có thể có ID mới chèn được xuất ra bảng điều khiển SSMS như sau:

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Bạn cũng có thể sử dụng điều này từ ví dụ:C #, khi bạn cần lấy lại ID cho ứng dụng gọi điện của mình - chỉ cần thực hiện truy vấn SQL với .ExecuteScalar() (thay vì .ExecuteNonQuery() ) để đọc ID kết quả quay lại.

Hoặc nếu bạn cần nắm bắt ID mới được chèn bên trong T-SQL (ví dụ:để xử lý thêm sau này), bạn cần tạo một biến bảng:

DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Bằng cách này, bạn có thể đặt nhiều giá trị vào @OutputTbl và xử lý thêm những điều đó. Bạn cũng có thể sử dụng bảng tạm thời "thông thường" (#temp ) hoặc thậm chí là một bảng liên tục "thực" làm "mục tiêu đầu ra" của bạn tại đây.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả về nhiều hàng từ truy vấn cột XML trong SQL Server 2008

  2. tại sao việc chèn hàng trên 8053 byte không xuất hiện lỗi khi cần vì giới hạn hàng cho phép tối đa là 8060

  3. Thuyết phục máy chủ SQL tìm kiếm ngược trên chỉ mục được phân cụm cho một lược đồ chỉ chèn

  4. Cách sử dụng SQL Server HierarchyID thông qua các ví dụ đơn giản

  5. Looping trong Trigger?