Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menambahkan kunci utama peningkatan otomatis di server sql dengan nvarchar?

Anda tidak dapat melakukan ini secara langsung - apa yang Anda bisa lakukan ini:

  • buat kolom kenaikan otomatis untuk menangani bagian numerik
  • tambahkan kolom terhitung yang menggabungkan awalan string dan nomor

Jadi cobalah sesuatu seperti ini:

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
    )

Sekarang ketika Anda menyisipkan baris seperti ini:

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

Anda harus mendapatkan baris seperti ini:

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

Dan Anda dapat menentukan kunci utama Anda pada IDandPrefix itu kolom juga:

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. Periksa Batasan - Subkueri tidak diizinkan dalam konteks ini

  2. Apakah ada cara/alat untuk mengidentifikasi perkiraan waktu berjalan kueri di SQL SERVER

  3. Berapa jumlah maksimum gabungan yang diizinkan di SQL Server 2008?

  4. CTE loop tak terbatas dengan OPTION (maxrecursion 0)

  5. Menggunakan tupel dalam klausa SQL IN