Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к: SQL Server 2016 (13.x) и более поздние версии
Azure SQL Database
Azure SQL Managed Instance
SQL Database в Microsoft Fabric
Вы можете создать уникальное ограничение в SQL Server с помощью SQL Server Management Studio или Transact-SQL, чтобы не вводить повторяющиеся значения в определенных столбцах, которые не участвуют в первичном ключе. Создание ограничения уникальности автоматически приводит к созданию соответствующего уникального индекса.
Note
Сведения об уникальных ограничениях в Azure Synapse Analytics см. в статье "Первичный ключ", "Внешний ключ" и уникальный ключ в Azure Synapse Analytics.
Разрешения
Требуется разрешение ALTER на таблицу.
Использование SQL Server Management Studio (SSMS)
Создание уникального ограничения с помощью SSMS
В обозревателе объектовщелкните правой кнопкой мыши таблицу, в которую необходимо добавить ограничение уникальности, и выберите Конструктор.
В меню Конструктор таблиц выберите пункт Индексы и ключи.
В диалоговом окне Индексы и ключи нажмите Добавить.
В сетке в разделе "Общие" выберите "Тип " и выберите "Уникальный ключ " в раскрывающемся списке справа от свойства и нажмите кнопку "Закрыть".
В меню Файл выберите пункт Сохранить имя таблицы.
Использование Transact-SQL
Создание уникального ограничения с помощью Transact-SQL
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На панели "Стандартный" выберите "Создать запрос".
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере создается таблица
TransactionHistoryArchive4, а также создается уникальное ограничение в столбцеTransactionID.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Создание уникального ограничения для существующей таблицы
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На панели "Стандартный" выберите "Создать запрос".
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере создается ограничение уникальности в столбцах
PasswordHashиPasswordSaltв таблицеPerson.Password.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
Создание уникального ограничения для новой таблицы
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На панели "Стандартный" выберите "Создать запрос".
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере создается таблица и определяется ограничение уникальности в столбце
TransactionID.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Создание уникального ограничения для столбца, допускающего значение NULL
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На панели "Стандартный" выберите "Создать запрос".
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В примере создается отфильтрованное уникальное ограничение, используя синтаксис , обеспечивающее уникальность только для значений, отличных от
CREATE UNIQUE INDEX.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO