Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Стойността на полето трябва да е уникална, освен ако не е NULL

Създавам изглед с индекс an, който игнорира нулите чрез клаузата where... т.е. ако вмъкнете null в таблицата, изгледът не се интересува, но ако вмъкнете ненулева стойност, изгледът ще наложи ограничението.

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

Така че сега моята таблица с оборудване има колона asset_tag, която позволява множество нули, но само уникални ненулеви стойности.

Забележка:Ако използвате mssql 2000, ще трябва да "НАСТРОЙТЕ ARITHABORT ON " точно преди каквото и да е вмъкване, актуализиране или изтриване на таблицата. Със сигурност това не се изисква на mssql 2005 и по-нови.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимизирайте производителността на подзаявките

  2. Как SQL Server определя стила за конвертиране, когато не е посочен?

  3. Стойности, разделени със запетая със SQL заявка

  4. Скриване на ред с всички нулеви стойности с помощта на Dynamic Pivot

  5. Грешка при импортиране на пакет - не може да се преобразува между Unicode и Non Unicode String тип данни