当我打开SSMS中的表的设计器时,第一列Id将为其分配一个主键(IDENTITY
),并在其旁边显示键图标。在Indexes/Keys窗口中,我可以看到名称为[PK_dbo.Lines]
和Primary Key
的PK_dbo.Lines
条目。无法删除SQL Server中的主键约束
ALTER TABLE dbo.Lines DROP CONSTRAINT [PK_dbo.Lines]
回报
消息3728,级别16,状态1,第33行
'PK_dbo.Lines' 不是一个约束。
如果我执行
SELECT *
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
我可以看到主键的所有表,除了表Lines
...
该查询也不会返回任何结果:
select object_name (parent_obj) ObjectName, name
from sysobjects
where xtype = 'PK'
and parent_obj = (object_id('[dbo].[Lines]'))
有什么想法这里发生了什么?
如果您对数据库中的表/列进行任何更改SSMS需要手动**刷新以正确反映这些更改。难道它就像右键单击'Tables'并选择刷新一样简单? – Ralph
我试图模拟你的情况,一切正常。请提供您的表格完整脚本。 – FLICKER
@Ralph你是对的,但它似乎不仅需要刷新,而且关闭设计器窗口,然后重新打开它。看起来,无论何时显示窗口索引/键,它都会在设计器加载时显示数据,并且在设计器关闭并重新打开之前它不会刷新数据。发布您的建议作为答案,我会接受它。 – Goran