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

Làm cách nào để thêm khóa chính autoincrement trong máy chủ sql với nvarchar?

Bạn không thể làm điều này trực tiếp - những gì bạn có thể làm là cái này:

  • tạo cột tăng tự động để xử lý phần số
  • thêm một cột được tính toán nối tiền tố chuỗi và số

Vì vậy, hãy thử một cái gì đó như sau:

CREATE TABLE dbo.YourTable
    (ID INT IDENTITY(1,1) NOT NULL,
     StringPrefix NVARCHAR(10) NOT NULL,
     IDandPrefix AS ISNULL(StringPrefix + CAST(ID AS NVARCHAR(10)), 'X') PERSISTED
    )

Bây giờ khi bạn chèn các hàng như thế này:

INSERT INTO dbo.YourTable(StringPrefix) VALUES('A'), ('B'), ('A')

bạn sẽ nhận được các hàng như thế này:

ID   StringPrefix   IDandPrefix
 1        A             A1
 2        B             B2
 3        A             A3

Và bạn có thể xác định khóa chính của mình trên IDandPrefix đó cột cũng vậy:

ALTER TABLE dbo.YourTable 
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (IDandPrefix)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gặp lỗi khi chạy tập lệnh 50 MB trên SQL Server 2008 R2

  2. ExecuteNonQuery:Thuộc tính kết nối chưa được khởi tạo.

  3. Chuyển đổi ‘smalldatetime’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)

  4. Lấy dữ liệu từ quy trình được lưu trữ với Entity Framework

  5. Sử dụng Bộ nhớ Intel Optane dành cho Máy chủ SQL