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

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

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

15.09.2008 17:35:18
Эта ссылка может помочь вам codefari.com/2014/10/unique-key-constraint-in-sql-server.html
Dilip Kr Singh 26.06.2016 16:07:02
10 ОТВЕТОВ
РЕШЕНИЕ

Команда SQL:

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

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

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

  • щелкните правой кнопкой мыши по таблице и выберите «Индексы / Ключи»
  • нажмите кнопку Добавить, чтобы добавить новый индекс
  • введите необходимую информацию в свойствах с правой стороны:
    • столбцы, которые вы хотите (нажмите кнопку с многоточием, чтобы выбрать)
    • набор уникален для да
    • дать ему соответствующее имя
272
15.09.2008 17:53:53
Это работает ... но ... почему ограничение отображается в папке INDEX вместо папки CONSTRAINTS. Это показано с другим значком, но в любом случае это должно быть в папке ограничений.
Fernando Torres 19.02.2016 13:36:38
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
13
15.09.2008 17:39:29

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

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

Документы MSDN

8
15.09.2008 17:42:11

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

5
15.09.2008 17:42:56

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

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

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

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

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

10
15.09.2008 17:43:57
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
29
30.11.2012 10:16:50

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

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

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

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

15
23.05.2017 12:18:25
Как вы делаете это в SQL Server 2005?
Maxrunner 26.05.2015 19:14:11
Это невозможно в SQL Server 2005. Я настоятельно рекомендую перейти на более современную СУБД - она официально не будет поддерживаться с 12 апреля 2016 года.
reedstonefood 24.06.2015 13:26:33

В SQL Server Management Studio Express:

  • Щелкните правой кнопкой мыши таблицу, выберите « Изменить» или « Дизайн» (для более поздних версий).
  • Щелкните правой кнопкой мыши поле, выберите « Индексы / ключи» ...
  • Нажмите Добавить
  • Для столбцов выберите имя поля, которое вы хотите, чтобы оно было уникальным.
  • Для Типа выберите Уникальный ключ .
  • Нажмите Закрыть , Сохранить таблицу.
84
21.01.2013 18:03:21

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

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

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

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

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

6
1.12.2014 07:11:04
UNIQUE NONCLUSTERED а варианты PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ?
Kiquenet 22.11.2016 08:51:44

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

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
0
21.03.2018 11:43:12