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

Как да създам уникално ограничение, което също позволява нулеви стойности?

Това, което търсите, наистина е част от стандартите на ANSI SQL:92, SQL:1999 и SQL:2003, т.е. ограничение UNIQUE трябва да забранява дублиращи се стойности, различни от NULL, но да приема множество NULL стойности.

В света на Microsoft на SQL Server обаче едно NULL е разрешено, но множество NULL не са...

В SQL Server 2008 , можете да дефинирате уникален филтриран индекс въз основа на предикат, който изключва NULL:

CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;

В по-ранни версии можете да прибягвате до VIEWS с предикат NOT NULL, за да наложите ограничението.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да премахна неразбиващи интервали от колона в SQL сървър?

  2. преобразуване на времевата марка на Epoch в sql сървър (формат, четим от човека)

  3. Одит на данни в NHibernate и SqlServer

  4. SQL Server 2017:Копиране на данни от SQL Server от Linux към Windows с SSIS

  5. Как да почистя (предотвратя SQL инжектирането) динамичен SQL в SQL Server?