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

Cách tốt nhất để nhận Hướng dẫn PK của hàng đã chèn

Bạn có thể sử dụng chức năng OUTPUT để trả lại các giá trị mặc định thành một tham số.

CREATE TABLE MyTable
(
    MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
    MyColumn1 NVARCHAR(100),
    MyColumn2 NVARCHAR(100)
)

DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)

INSERT INTO 
    MyTable
(
    MyColumn1,
    MyColumn2
)
OUTPUT INSERTED.MyPK INTO @myNewPKTable
VALUES
(
    'MyValue1',
    'MyValue2'
)

SELECT * FROM @myNewPKTable

Tuy nhiên, tôi phải nói rằng, hãy cẩn thận khi sử dụng một số nhận dạng duy nhất làm khóa chính. Việc lập chỉ mục trên GUID có hiệu suất cực kỳ kém vì mọi guids mới được tạo sẽ phải được chèn vào giữa chỉ mục và chỉ được thêm vào cuối cùng. Có chức năng mới trong SQL2005 cho NewSequentialId (). Nếu không bắt buộc phải che khuất với Guids của bạn thì đó là một giải pháp thay thế khả thi.



  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 triển khai ứng dụng với cơ sở dữ liệu máy chủ sql trên máy khách

  2. SQL Server DATEPART () so với DATENAME () - Sự khác biệt là gì?

  3. Trình tự thực thi của mệnh đề Group By, Have và Where trong SQL Server?

  4. Lỗi SQL Server 7222:“Chỉ nhà cung cấp SQL Server mới được phép trên trường hợp này”

  5. Phiên bản mới nhất của SQL Server, Phiên bản &Lịch sử Máy chủ SQL