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

Ограничение само за един запис, маркиран като по подразбиране

Използвайте уникален филтриран индекс

На SQL Server 2008 или по-нова версия можете просто да използвате уникален филтриран индекс

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
    ON TableName(FormID)
    WHERE isDefault = 1

Където е масата

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)

Например, ако се опитате да вмъкнете много редове със същия FormID и isDefault настроен на 1, ще имате тази грешка:

Не може да се вмъкне дублиран ключов ред в обект 'dbo.TableName' с уникален индекс 'IX_TableName_FormID_isDefault'. Стойността на дублирания ключ е (1).

Източник:http://technet.microsoft.com/en-us/library/cc280372.aspx



  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. to_sql pyodbc полето за броене е неправилно или синтактична грешка

  3. 2 начина за връщане на списък с тригери в база данни на SQL Server с помощта на T-SQL

  4. Добавяне на идентичност към съществуваща колона

  5. Заменете единичните кавички в SQL Server