Как удалить уникальное ограничение из столбца таблицы? - PullRequest
20 голосов
/ 31 марта 2011

У меня есть таблица 'users' со столбцом 'login', определенным как:

[login] VARCHAR(50) UNIQUE NOT NULL

Теперь я хочу удалить это уникальное ограничение / индекс с помощью сценария SQL.Я нашел его имя UQ_ users _7D78A4E7 в моей локальной базе данных, но я полагаю, у него другое имя в другой базе данных.

Каков наилучший способ отбросить этот уникальныйограничение?Или хотя бы какое-нибудь ...

Спасибо.

Ответы [ 11 ]

0 голосов
/ 31 марта 2011

Я остановился на сценарии, как показано ниже (поскольку у меня есть только один некластеризованный уникальный индекс в этой таблице):

declare @table_name nvarchar(256)  
declare @col_name nvarchar(256)  
declare @Command  nvarchar(1000)  

set @table_name = N'users'
set @col_name = N'login'

select @Command = 'ALTER TABLE ' + @table_name + ' drop constraint ' + d.name
    from sys.tables t join sys.indexes d on d.object_id = t.object_id  
    where t.name = @table_name and d.type=2 and d.is_unique=1

--print @Command

execute (@Command)

Кто-нибудь комментирует, приемлемо ли это решение? Есть плюсы и минусы?

Спасибо.

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