Sybase drop主键

时间:2016-06-22 19:48:52

标签: key sybase ddl

我在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 )

但出现同样的错误。

那么我怎么能放弃这个主键?

提前致谢

2 个答案:

答案 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