sql – 如何从表列中删除唯一约束?

我有一个表’users’用’login’列定义为:
[login] VARCHAR(50) UNIQUE NOT NULL

现在我想使用sql脚本去除这个唯一的约束/索引.我在本地数据库中找到了它的名字UQ_users_7D78A4E7,但是我想在另一个数据库中有一个不同的名字.

什么是删除这个独特约束的最佳方法?或至少任何…

谢谢.

解决方法

SKINDER,你的代码不使用列名.正确的脚本是:
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  and d.type=2 and d.is_unique=1
    join sys.index_columns ic on d.index_id=ic.index_id and ic.object_id=t.object_id
    join sys.columns c on ic.column_id = c.column_id  and c.object_id=t.object_id
    where t.name = @table_name and c.name=@col_name

print @Command

--execute (@Command)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...