Создание уникальных данных столбцов в SQL Server Management Studio - PullRequest
2 голосов
/ 15 июня 2011

Допустим, у меня есть база данных с несколькими столбцами.Существует первичный ключ, пользователи.Но есть и еще одна колонка, Имя пользователя.Когда новое имя пользователя вводится в базу данных, я хочу убедиться, что оно уникально.Поскольку первичный ключ уже существует, возможно, мне нужно наложить ограничение на имя пользователя.

Я понятия не имею, как это сделать.Когда я щелкаю правой кнопкой мыши по имени столбца и поднимаю «Indexes / Keys», я вижу «Users_Key» для существующего первичного ключа, а не «Users».Так что я должен добавить что-то вроде «Username_Keys»?Когда я это делаю, я не вижу его нигде в обозревателе объектов.Но я вижу Users_Key в разделе «Ключи»?

1 Ответ

7 голосов
/ 16 июня 2011

Можно ли использовать запрос в SSMS?

Потому что тогда вы могли бы сделать это:

ALTER TABLE tablename
ADD UNIQUE (Username)

где таблица называется tablename, а столбец Имя пользователя (который вы хотите быть уникальным) называется Username.

Для нескольких столбцов сделайте это так:

ALTER TABLE tablename
ADD CONSTRAINT uc_NameofConstraint UNIQUE (column1,column2)

Если честно, лучше сделать это вторым способом, так как вам может потребоваться снять ограничение позже по какой-то причине. Как это:

ALTER TABLE tablename
DROP CONSTRAINT uc_NameofConstraint

Не забывайте, что ограничение UNIQUE имеет ограничение размера (я думаю, что оно составляет около 900 байт, но не уверен на 100%), поэтому убедитесь, что UserName не относится к типу столбцов, как NVARCHAR(MAX) позволь тебе сделать это! Но вы все равно будете безумно позволять кому-либо иметь имя пользователя более 100 символов!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...