重命名数据库约束

时间:2013-06-04 10:16:38

标签: sql-server sql-server-2012

我必须在数据库中重命名约束。当前数据库由以下脚本(示例,部分)创建:

CREATE TABLE [dbo].[Table1] (
    [Column1] UNIQUEIDENTIFIER DEFAULT (newsequentialid()) NOT NULL,
    ...

现在我需要重命名附加到[Column1]的默认约束。 怎么可能呢?

2 个答案:

答案 0 :(得分:1)

正如Mitch建议的那样,您需要找到自动生成的默认名称。假设桌子上只有一个默认值:

declare @Name nvarchar(50);
select @Name = name from sys.default_constraints 
  where parent_object_id = Object_Id('dbo.table1');
exec sp_rename @Name, 'NewConstraintName';

答案 1 :(得分:0)

肯定可以重命名约束,有两种方法

  • 删除当前约束并重新创建它们(很容易,但显然不是所有时间都可能)
  • 您可以使用存储过程sp_rename

喜欢这个

exec sp_rename ‘PK_1231’,
'PK_MyTableName',
'OBJECT';

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms188351.aspx “重命名约束”部分