我在Sybase中有以下表格
create table CUE_LOAD (
CAR_YEAR numeric(4,0) not null ,
CAR_ACCT numeric(15,0) not null ,
CAR_INIT_DATE date not null ,
CAR_END_DATE date not null ,
CAR_DOCTYPE varchar(20) not null ,
CAR_DOC_NO varchar(20) not null ,
CAR_CONCEPT varchar(100) not null ,
CAR_NAME varchar(100) not null ,
CAR_SHOP_VALUE numeric(20,0) not null ,
CAR_VALUE_IVA numeric(20,0) not null ,
CAR_VALUE_RTF numeric(20,0) not null ,
CAR_CONSIG varchar(30) not null ,
CAR_ID int identity ,
PRIMARY KEY CLUSTERED ( CAR_ACCT, CAR_DOC_NO, CAR_INIT_DATE, CAR_END_DATE ) on 'default')
正如您所看到的,我们有一个复合主键,它没有约束名称,但现在我们需要删除它并将主要分配给表中的另一列,我已尝试使用
ALTER TABLE CUE_LOAD DROP PRIMARY KEY
但我得到"关键字' PRIMARY'"附近的语法不正确,我也尝试了
ALTER TABLE CUE_LOAD DROP PRIMARY KEY CLUSTERED PRIMARY KEY CLUSTERED ( CAR_ACCT, CAR_DOC_NO, CAR_INIT_DATE, CAR_END_DATE )
但出现同样的错误。
那么我怎么能放弃这个主键?
提前致谢
答案 0 :(得分:1)
我终于搞清楚了,执行命令sp_helpconstraint CUE_LOAD找到Sybase签名的主键标识符,如CUE_LOAD_11311480441,然后使用drop constraint命令
ALTER TABLE
CUE_LOAD
DROP CONSTRAINT CUE_LOAD_11311480441
就是这样。
答案 1 :(得分:0)
使用以下命令:
sp_dropkey PRIMARY, CUE_LOAD