SQL drop constraint 未能删除 失败错误解决约束问题
问题如图:
想要删除产品表的主键约束,但是报错
创建的产品表:
CREATE TABLE PROVIDERS
(PROVIDERID INT NOT NULL,
PROVIDERNAME NVARCHAR(50) NOT NULL PRIMARY KEY, # 设置的主键
PROVIDERCOMNAME NVARCHAR(20),
PROVIDERCOMTITLE NVARCHAR(10),
PROVIDERADD NVARCHAR(50),
PROVIDERACITY NVARCHAR(20),
PROVIDERREGION NVARCHAR(20),
PROVIDERZIP NVARCHAR(10),
PROVIDERCOUNTRY NVARCHAR(10),
PROVIDERTEL NVARCHAR(20),
PROVIDERFAX NVARCHAR(20),
PROVIDERWEB NVARCHAR(50)
–CONSTRAINT PK_PROVNAME PRIMARY KEY(PROVIDENAME)
)
(PROVIDERID INT NOT NULL,
PROVIDERNAME NVARCHAR(50) NOT NULL PRIMARY KEY, # 设置的主键
PROVIDERCOMNAME NVARCHAR(20),
PROVIDERCOMTITLE NVARCHAR(10),
PROVIDERADD NVARCHAR(50),
PROVIDERACITY NVARCHAR(20),
PROVIDERREGION NVARCHAR(20),
PROVIDERZIP NVARCHAR(10),
PROVIDERCOUNTRY NVARCHAR(10),
PROVIDERTEL NVARCHAR(20),
PROVIDERFAX NVARCHAR(20),
PROVIDERWEB NVARCHAR(50)
–CONSTRAINT PK_PROVNAME PRIMARY KEY(PROVIDENAME)
)
原因在于主键的名称写错了(主键后面有自带的随机数)
— 查看真正的主键名称
EXEC SP_HELP PROVIDERS
EXEC SP_HELP PROVIDERS
那么为什么它的后面会有随机数呢,是因为我们在创建表的时候选择了直接在后面加上PRIMARY KEY
,
如果不想要后面的随机数,可以使用以下方式创建表: