无法从SQL Server表中删除主键
我有一个表的主键。我使用下面的查询检查约束无法从SQL Server表中删除主键,sql,sql-server,constraints,Sql,Sql Server,Constraints,我有一个表的主键。我使用下面的查询检查约束 SELECT name FROM sys.key_constraints WHERE [type] = 'PK' AND [parent_object_id] = Object_id('<TableName>'); ALTER TABLE TableName DROP CONSTRAINT PK_dbo.TableName; 我试着像下面一样,但同样的错误 ALTER TABLE dbo.TableName DROP C
SELECT name
FROM sys.key_constraints
WHERE [type] = 'PK'
AND [parent_object_id] = Object_id('<TableName>');
ALTER TABLE TableName DROP CONSTRAINT PK_dbo.TableName;
我试着像下面一样,但同样的错误
ALTER TABLE dbo.TableName DROP CONSTRAINT PK_dbo.TableName;
查询执行失败,错误消息为:
无法执行查询。错误:“.”附近的语法不正确
上面的查询有什么问题?请确保约束名称中有点 如果有,请在方括号内键入约束名称,否则请确保提供了正确的名称
ALTER TABLE dbo.TableName DROP CONSTRAINT [PK_dbo.TableName];
注意:不建议在对象名称中使用点、空格等字符。相反,使用下划线,如
PK\u dbo\u TableName
,这是因为主键名中有
。可以通过如下方式使用[]
来避免:
ALTER TABLE dbo.TableName DROP CONSTRAINT [PK_dbo.TableName];
谢谢约束名称周围的方括号修复了我的问题。