我有一个表"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)

Database相关问答推荐

Pocketbase 中的 SQLite 数据库可以根据自己的喜好进行修改吗?

什么时候需要手动重新分析 PostgreSQL 中的表?

创建一个spell check,判断具有合理运行时间的数据库

MySQL 语法 LIMIT x, y 的 T-SQL 类似的功能是什么?

数据库设计:多表与单表

WAMP 的 MySQL 数据库文件位于何处?

数据库供应商如何实现事务?

Spring Framework 中的默认隔离级别

PostgreSQL 是否对只读事务进行了一些性能优化

skip bad record in redshift data load

ORM 性能成本

什么是 Scalar标量查询?

Meteor 如何执行数据库迁移?

postgresql 在 where 子句中使用 json 子元素

获取错误函数 to_date(timestamp without time zone, unknown) 不存在

如何使用 django 判断 postgresql 数据库中是否存在某些内容?

传递依赖有什么问题?

在 UI 中执行业务逻辑的单元测试数据库应用程序

是否有用于 postgresql 的数据可视化工具,它也能够显示模式间关系?

如何在 Java 中检测 SQL 表的存在?