我有一个表"users",其中"login"列定义为:
[login] VARCHAR(50) UNIQUE NOT NULL
现在我想使用SQL脚本删除这个唯一的约束/索引.我在本地数据库中找到了它的名称UQ_users_7D78A4E7,但我想它在另一个数据库中有不同的名称.
放弃这种独特约束的最佳方式是什么?或者至少任何...
谢谢你.
我有一个表"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)