【发布时间】:2017-12-25 22:02:53
【问题描述】:
是否可以在 SQL Server 中重命名约束?我不想删除并创建一个新的约束,因为这个约束会影响其他已经存在的约束,我将不得不重新创建/更改这些约束。
【问题讨论】:
标签: sql sql-server constraints
是否可以在 SQL Server 中重命名约束?我不想删除并创建一个新的约束,因为这个约束会影响其他已经存在的约束,我将不得不重新创建/更改这些约束。
【问题讨论】:
标签: sql sql-server constraints
经过一番挖掘,我发现它实际上必须是这种形式:
EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint', N'OBJECT'
【讨论】:
您可以使用sp_rename 重命名@objtype = 'OBJECT'
这适用于 sys.objects 中列出的包含约束的对象
【讨论】:
@objtype = 'OBJECT'。只需指定旧名称和新名称。
您可以使用sp_rename。
sp_rename 'CK_Ax', 'CK_Ax1'
【讨论】:
INDEX 作为对象类型传递。
sp_rename 参数上使用表前缀,如果使用它就会失败。
答案是真的:
exec sp_rename
@objname = 'Old_Constraint',
@newname = 'New_Constraint',
@objtype = 'object'
【讨论】:
我知道这是一个老问题,但我发现以下内容非常有帮助,除了其他很好的答案:
如果要重命名的约束中包含句点(点),则需要将其括在方括号中,如下所示:
sp_rename 'schema.[Name.With.Period.In.It]', 'New.Name.With.Period.In.It'
【讨论】: