Existe-t-il un moyen de supprimer toutes les clés uniques d'une table en dehors de la clé primaire? Mes noms de clés sont générés par un ORM et je ne peux pas garantir leurs noms.Supprimer toutes les clés uniques d'une table - T-SQL
2
A
Répondre
1
Essayez cette
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
Cela supprimera toutes les contraintes uniques, il ne supprimera pas les clés primaires. Les clés primaires imposeront toujours l'unicité.
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
Questions connexes
- 1. Comment supprimer toutes les clés uniques d'une table?
- 2. Comment supprimer toutes les clés de JSON?
- 3. jquery $ .totalStorage - Supprimer toutes les clés
- 4. Modifier les relations clés étrangères dans TSQL
- 5. TSQL pour obtenir toutes les lignes d'une table
- 6. Mysql: supprimer par programme toutes les clés étrangères
- 7. TSQL: trouver des entrées uniques dans une seule table
- 8. mysql uniques (clés multiples)
- 9. Supprimez toutes les clés étrangères dans une table
- 10. Comment supprimer toutes les entrées d'une table
- 11. Rendre les clés étrangères uniques dans JPA
- 12. Besoin d'aide dans les contraintes clés uniques
- 13. Générer toutes les permutations uniques
- 14. Aide avec les clés primaires et les contraintes uniques
- 15. Obtenir toutes les clés de la table avec des types
- 16. Suppression de toutes les clés primaires
- 17. Postgres: question complexe CASCADE - vous assurer de ne supprimer que les références de clés étrangères uniques?
- 18. viewControllerForNewContact affiche toutes les clés
- 19. tsql - supprimer la dernière ligne
- 20. Doctrines et clés uniques composites
- 21. TSQL Problème - Table de lien
- 22. MySql insérer où les valeurs n'existent pas withoout clés uniques
- 23. plusieurs clés uniques dans NHibernate
- 24. Rechercher toutes les clés de sous-registre pour JavaSoft, puis supprimer toutes ses conclusions
- 25. Liste, comptage des valeurs de base de données Mongo uniques sur toutes les clés
- 26. MySQL UTF8 encodage et des clés uniques
- 27. Comment trouver toutes les clés étrangères?
- 28. Comment afficher les contraintes uniques d'une table dans MySQL?
- 29. relation rails à l'aide de clés uniques
- 30. Comment supprimer les champs clés
simplement demander: est-elle différente d'une certaine manière (la partie de la requête et disons que nous allons utiliser « UTILISATION DB_NAME » pour passer à besoin DB) à partir de: SELECT « ALTER TABLE '+ TC.CONSTRAINT_SCHEMA +'. ' + TC.TABLE_NAME + 'DROP CONSTRAINT' + requête TC.CONSTRAINT_NAME from INFORMATION_SCHEMA.TABLE_CONSTRAINTS comme TC où TC.CONSTRAINT_TYPE = 'UNIQUE' – Bax