2015-05-19 146 views
-1

我使用SQL Server 2012企業版..更改主鍵已經存在的表

我有表結構對多個字段設置如下圖所示。我需要刪除主鍵,需要添加主關鍵的第一列是自

和表結構如下..

CREATE TABLE [dbo].[ActivationInfo](
    [cert_id] [int] NOT NULL, 
    [ActivationKey] [varchar](1800) NULL, 
    [Activated_ts] [datetime] NULL, 
    [Activated_by] [int] NOT NULL, 
    [FLAGGED] [varchar](20) NULL 
) ON [PRIMARY] 

我怎麼能刪除在多個領域之後,我需要容下主鍵已經設置主鍵for cert_id

有沒有人可以幫到這個..

回答

0

這只是通過刪除主鍵約束,然後添加一個新的。

首先,你需要使用下面的代碼,以確定您的主鍵約束的名稱:

SELECT CONSTRAINT_NAME 
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
    WHERE TABLE_NAME = 'ActivationInfo' AND CONSTRAINT_TYPE = 'PRIMARY KEY' 

然後你只需刪除並替換鍵:

ALTER TABLE ActivationInfo DROP CONSTRAINT **EXISTING NAME** 
ALTER TABLE ActivationInfo ADD CONSTRAINT pk_ActivationInfo PRIMARY KEY (cert_id) 
0

要刪除使用此結構:(IF你知道的表名)

DECLARE @tablename VARCHAR(100) = 'ActivationInfo' 

SELECT 'alter table ' + @tablename 
     + ' drop constraint ' + name 
FROM sys.objects 
WHERE type = 'pk' 
     AND parent_object_id = Object_id(@tablename) 

添加主鍵:

ALTER TABLE [dbo].[ActivationInfo] ADD CONSTRAINT PK_ActivationInfo_cert_id PRIMARY KEY(cert_id)