2009-11-30 25 views
0

在MSSQL中是有辦法的PK約束指定一個名稱,以便MSSQL不提供一個隨機生成的PK名稱,像這樣:指定創建表的過程PK名稱

PK__Addresse__3214EC074E88ABD4 

的只有我能方式看到現在要做的是首先創建表,然後發出一個ALTER命令來重命名PK。如果我能夠一次完成,那將會更容易。

回答

2

是的。下面是其中SSMS生成語法:

CREATE TABLE [Address] (
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    << columns here >>, 
    CONSTRAINT [PK_Address] PRIMARY KEY CLUSTERED ([ID] ASC) 
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
GO 
1

在創建表

CREATE TABLE MyTable 
(
    Id INT NOT NULL  
    CONSTRAINT PK_MyTable PRIMARY KEY (Id) 
) 

的時間,如果你需要改變表並添加一個主要約束

ALTER TABLE MyTable 
ADD CONSTRAINT PK_MyTable PRIMARY KEY (Id) 

希望這有助於

+0

我會使用PK_MyTable。約束名稱(PK,FK,CK,DF等)在sys.objects中必須是唯一的,所以不能爲另一個表使用「PK_ID」。 – gbn 2009-11-30 05:55:44

+0

正確的先生..我明白我的錯誤。謝謝 – 2009-11-30 06:26:54

+0

我修改了 – 2009-11-30 06:27:48

相關問題