web-dev-qa-db-fra.com

Renommer une contrainte dans SQL Server?

Est-il possible de renommer une contrainte dans SQL Server? Je ne veux pas avoir à en supprimer et à en créer une nouvelle car cette contrainte affecte d'autres contraintes déjà existantes et je devrai les recréer/modifier.

72
mezamorphic

Vous pouvez renommer en utilisant sp_rename en utilisant @objtype = 'OBJECT'

Cela fonctionne sur les objets listés dans sys.objects qui incluent des contraintes

68
gbn

Après avoir creusé un peu plus, je me suis aperçu que cela devait se présenter sous cette forme:

EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint', N'OBJECT'

Source

51
ozz

Vous pouvez utiliser sp_rename .

sp_rename 'CK_Ax', 'CK_Ax1'
45
Mikael Eriksson

la réponse est vraie:

exec sp_rename 
@objname = 'Old_Constraint',
@newname = 'New_Constraint',
@objtype = 'object'
8
rojib

Je sais que c’est une vieille question, mais j’ai trouvé que ce qui suit était très utile, en plus des autres bonnes réponses:

Si la contrainte à renommer contient un point (point), vous devez la placer entre crochets, comme suit:

sp_rename 'schema.[Name.With.Period.In.It]', 'New.Name.With.Period.In.It'
1
Winks