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

Nilai bidang harus unik kecuali NULL

Saya membuat tampilan dengan indeks yang mengabaikan nol melalui klausa where...yaitu. jika Anda memasukkan null ke dalam tabel, tampilan tidak peduli tetapi jika Anda memasukkan nilai bukan nol, tampilan akan memberlakukan batasan.

create view dbo.UniqueAssetTag with schemabinding
as
select asset_tag
from dbo.equipment
where asset_tag is not null

GO

create unique clustered index ix_UniqueAssetTag
on UniqueAssetTag(asset_tag)

GO

Jadi sekarang tabel peralatan saya memiliki kolom asset_tag yang memungkinkan beberapa null tetapi hanya nilai non null yang unik.

Catatan:Jika menggunakan mssql 2000, Anda harus "MENATUR ARITHABORT AKTIF " tepat sebelum penyisipan, pembaruan, atau penghapusan dilakukan pada tabel. Cukup yakin ini tidak diperlukan pada mssql 2005 dan yang lebih baru.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih hasil SQL yang dikelompokkan berdasarkan minggu

  2. Mencoba mendapatkan jumlah nilai yang berbeda untuk file yang berbeda untuk versi perangkat lunak yang berbeda

  3. SQL Server 2008 -- jalankan kueri secara paralel

  4. Fitur Teratas yang Harus Dicari di Alat Pemantauan SQL Server

  5. Mengeksekusi proc yang tersimpan dari DotNet membutuhkan waktu sangat lama tetapi di SSMS itu langsung