2013-06-04 71 views
1

我必須重命名數據庫中的約束。當前DB由下面的腳本(樣品,一部分)創建:重命名數據庫約束

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

現在,我需要重新命名連接到[Column1]默認約束。 這怎麼可能做到?

+4

提示:?SQL服務器命名約束]找出默認名稱...的 –

+0

可能重複(http://stackoverflow.com/questions/8712875/SQL服務器-重命名-A-約束) – Pondlife

回答

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'; 
0

爲了確保您可以重命名的約束,有兩種方式

  • 降當前的約束和重新
  • 您可以使用存儲過程sp_rename可以
  • 他們(它很容易,但顯然它不可能所有的時間)

像這樣

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

更多informati請參閱http://msdn.microsoft.com/en-us/library/ms188351.aspx 「重命名限制」部分