2012年9月10日 星期一

Sql Server删除主键和重建主键

引用來源
--

在我們發佈產品過程中,有的時候需要修改某些表的主鍵,但是又不能在企業管理器中直接修改,必需寫sql語句,
這改如何處理呢?   可以先刪除主鍵,再新建主鍵 ,  下面舉一個詳細的例子:

create table abcd
(
  a char(10) not null,
  b char(10) not null primary key(a,b),
  c char(10) null,
  d char(10) null
)

一個存在的表 abcd ,主鍵為 a+b ,  現在想把 a+b+c 三列修改為主鍵

 1.   刪除主鍵:
Declare @Pk varChar(100);
Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('abcd') and xtype='PK';
if @Pk is not null
begin
     exec('Alter table abcd Drop '+ @Pk)  --刪除原主鍵
 end

2. 把所有主鍵設為不能為空
alter table abcd alter column c char(10) not null
 
3.  重建主鍵:
ALTER Table abcd ADD CONSTRAINT pk_abcd   PRIMARY KEY (a, b, c )

沒有留言:

張貼留言