SQL Server Management Studio关于外键怪异的描述

ren*_*ene 5 sql-server ssms sql-server-2008

在SQL Server Management Studio中,我们在此对话框中输入外键的描述(在table中对外键进行修改Campus):

SQL Server Management Studio对话框

如您所见,描述似乎是空的。

但是,如果我运行此查询:

select object_name([major_id]), [ep].[name], [value]
from sys.extended_properties ep
INNER join sys.objects o on o.object_id = major_id
where o.[type] = 'F'
Run Code Online (Sandbox Code Playgroud)

结果是:

FK_Campus_School    MS_Description  foobar
Run Code Online (Sandbox Code Playgroud)

如果我在描述字段中输入文本(因为我认为该字段尚未设置),则将覆盖原始值。

我知道我可以使用此存储过程从脚本中添加/更新扩展属性:

EXEC sys.sp_addextendedproperty /* sp_updateextendedproperty */
@name = N'MS_Description', 
@value = N'is this saved again?', 
@level0type = N'SCHEMA', 
@level0name = N'Data', 
@level1type = N'TABLE', 
@level1name = N'Campus',
@level2type = N'CONSTRAINT', 
@level2name = N'FK_Campus_School';
Run Code Online (Sandbox Code Playgroud)

请注意,sp_addextendedproperty如果已经定义了属性,则调用的确会引发异常。该对话框似乎总是在进行更新。

我尝试了什么

如果我打开引用表上的外键对话框,则会显示该文本。该对话框也显示FK_Campus_School键,选择该键后,将显示说明。回到Campus表,然后显示外键说明。但是,执行完一个查询后,我又回到了同一条船上。

点击刷新按钮和/或上下文菜单选项不能解决此问题。

为了使SQL Server Management Studio在外键修改对话框中可靠地显示说明,我还能做些什么?

版本信息:

| Microsoft SQL Server Management Studio  | 10.50.1617.0
| Microsoft Data Access Components (MDAC) | 6.1.7601.17514
| Microsoft MSXML                         | 3.0 4.0 5.0 6.0 
| Microsoft Internet ExploreR             | 8.0.7601.17514
| Microsoft .NET Framework                | 2.0.50727.5472
| Operating SysteM                        | 6.1.7601
Run Code Online (Sandbox Code Playgroud)

目标:SQL Server 2008 R2