SQL Server 2005 Как создать уникальное ограничение?

StackOverflow https://stackoverflow.com/questions/64981

  •  09-06-2019
  •  | 
  •  

Вопрос

Как создать уникальное ограничение для существующей таблицы в SQL Server 2005?

Я ищу как TSQL, так и то, как это сделать, в диаграмме базы данных.

Это было полезно?

Решение

Команда SQL:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

Посмотреть полный синтаксис здесь.

Если вы хотите сделать это из диаграммы базы данных:

  • щелкните правой кнопкой мыши по таблице и выберите «Индексы/Ключи».
  • нажмите кнопку «Добавить», чтобы добавить новый индекс
  • введите необходимую информацию в Свойствах справа:
    • нужные столбцы (нажмите кнопку с многоточием, чтобы выбрать)
    • установите «Уникально» на «Да»
    • дайте ему подходящее имя

Другие советы

В SQL Server Management Studio Express:

  • Щелкните правой кнопкой мыши таблицу, выберите Изменить или Дизайн (для более поздних версий)
  • Щелкните правой кнопкой мыши поле, выберите Индексы/Ключи...
  • Нажмите Добавлять
  • Для Столбцы, выберите имя поля вы хотите быть уникальным.
  • Для Тип, выбирать Уникальный ключ.
  • Нажмите Закрывать, Сохранять Таблица.
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])

Предупреждение:В столбце, который вы сделали уникальным, может быть только одна пустая строка.

Вы можете сделать это с помощью отфильтрованного индекса в SQL 2008:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

Видеть Значение поля должно быть уникальным, если оно не равно NULL. для разнообразия ответов.

ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]

Я также обнаружил, что это можно сделать с помощью диаграмм базы данных.

Щелкнув правой кнопкой мыши по таблице и выбрав Индексы/Ключи...

Нажмите кнопку «Добавить» и измените столбцы на столбцы, которые вы хотите сделать уникальными.

Изменение уникально для Да.

Нажмите «Закрыть» и сохраните диаграмму, и она добавит ее в таблицу.

Вы ищете что-то вроде следующего

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

Документы MSDN

Чтобы создать ограничение UNIQUE для одного или нескольких столбцов, когда таблица уже создана, используйте следующий SQL:

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Чтобы разрешить именование ограничения UNIQUE для приведенного выше запроса.

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Запрос поддерживается MySQL/SQL Server/Oracle/MS Access.

На диаграмме студии управления выберите таблицу, щелкните правой кнопкой мыши, чтобы при желании добавить новый столбец, щелкните правой кнопкой мыши столбец и выберите «Проверить ограничения», там вы можете добавить его.

В некоторых ситуациях желательно убедиться, что уникальный ключ не существует, прежде чем создавать его.В таких случаях может помочь приведенный ниже сценарий:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top