2
A
回答
1
试试这个
select
distinct 'Alter table MyTable drop constraint '+o.name
from sys.objects o
join sys.columns c on o.parent_object_id = c.object_id AND o.type='UQ'
join sys.tables t on c.object_id = t.object_id
where t.name = 'MyTable'
1
这将删除所有的唯一约束,它不会丢弃主键。主键仍然会强制唯一性。
declare @table_name nvarchar(50) = 'yourtable' -- table
declare @SchemaName nvarchar(50) = 'yourschema' -- dbo
declare @Catalog nvarchar(50) = 'yourdatabase' -- database
select * into #t from
(
select 'ALTER TABLE ' + TC.CONSTRAINT_CATALOG + '.' + TC.CONSTRAINT_SCHEMA + '.' + TC.TABLE_NAME + ' DROP CONSTRAINT ' + CCU.CONSTRAINT_NAME query
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS as TC
inner join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE as CCU
on TC.CONSTRAINT_CATALOG = CCU.CONSTRAINT_CATALOG
and TC.CONSTRAINT_SCHEMA = CCU.CONSTRAINT_SCHEMA
and TC.CONSTRAINT_NAME = CCU.CONSTRAINT_NAME
where TC.CONSTRAINT_CATALOG = coalesce(@Catalog, db_name())
and TC.CONSTRAINT_SCHEMA = @SchemaName
and TC.TABLE_NAME = @table_name
and TC.CONSTRAINT_TYPE = 'UNIQUE'
) a
DECLARE @sqlstring as nvarchar(500)
DECLARE SqlCursor CURSOR FAST_FORWARD FOR
SELECT query FROM #t
OPEN SqlCursor
FETCH NEXT FROM SqlCursor
INTO @sqlstring
WHILE @@FETCH_STATUS = 0
BEGIN
exec(@sqlstring)
FETCH NEXT FROM SqlCursor
INTO @sqlstring
END
CLOSE SqlCursor
DEALLOCATE SqlCursor
DROP TABLE #t
相关问题
- 1. 删除所有列中的唯一键
- 2. 用于删除所有外键约束和唯一约束的TSql脚本?
- 3. 如何从表中删除所有唯一键?
- 4. 删除所有唯一行
- 5. TSQL - 删除所有行除1每组
- 6. 删除重复的行,没有唯一的键 - 关系表
- 7. 如何删除所有表中的所有外键约束?
- 8. 对于一行中的所有唯一单元格,删除行
- 9. 由于外键约束,无法删除现有的唯一键
- 10. MySQL删除所有表,忽略外键
- 11. SQL删除唯一行表
- 12. TSQL查询,删除所有重复的记录,但一个
- 13. 删除所有匹配键
- 14. 删除所有主键
- 15. 删除数组中的所有唯一标题条目
- 16. 删除唯一键在MySQL和留住
- 17. SQL唯一键IFF不会被删除
- 18. 如何删除mysql中的外键唯一键?
- 19. Java代码查找数据库中所有表的唯一键
- 20. tsql - 删除最后一行
- 21. 获取所有唯一的键和值
- 22. MySQL:改变表格并删除重复的唯一键
- 23. 删除ASP.NET表中的所有表行
- 24. 唯一地插入到没有唯一键的MySQL表中
- 25. 删除站点上所有位置的唯一权限SharePoint 2013
- 26. 从没有唯一列的表中删除部分重复项
- 27. 如何从没有唯一键的只有“普通”SQL和没有临时表的表中删除重复行?
- 28. 如何删除表中的一行时删除所有相关的表记录?
- 29. 删除表中的所有行NHibernate的
- 30. 在MySql中删除除了一个之外的所有表格
只是问:它以某种方式不同(查询部分和我们说,我们将使用 'USE DB_NAME' 切换到所需的DB)来自: SELECT“ALTER TABLE '+ TC.CONSTRAINT_SCHEMA +'。' + TC.TABLE_NAME +'DROP CONSTRAINT'+ TC.CONSTRAINT_NAME从INFORMATION_SCHEMA.TABLE_CONSTRAINTS查询 作为TC其中TC.CONSTRAINT_TYPE ='UNIQUE' – Bax