【问题标题】:How to see column description in SQL Server Management Studio?如何在 SQL Server Management Studio 中查看列描述?
【发布时间】:2022-01-14 17:14:50
【问题描述】:

我正在使用 SQL Server Management Studio 来查询数据。查询后,如何找到更多的列名信息?例如,不容易理解 LOC_NUM_ABC 表示什么。有没有办法可以获取列名的信息?例如:LOC_NUM_ABC 表示产品为 ABC 的位置数。

谢谢

【问题讨论】:

  • 这不会存储在任何地方,无论如何默认情况下,在创建表时,您不需要提供列的功能描述。您的内部数据库设计文档应包含该内容。
  • ...或源代码/存储库,或作为最后手段的扩展属性,或以上所有。没有人(包括 Microsoft)可以在没有有意义的上下文的情况下以编程方式确定 LOC_NUM_ABC 的意思是“具有产品 ABC 的位置数量”。也可以很容易地得出“喝了梅赛德斯 ABC 悬浮液后有多少比例的蝗虫变得麻木”。现在,如果您该上下文存储在某处,我们必须知道它在哪里提供任何类型的指导 - 而且 SSMS 是一个封闭系统,因此将其添加到网格或查询中的工具提示windows也不是一件容易的事。
  • 为什么人们可以写出正确的列名,这超出了我的理解。 NumLocations_ProductABC 有什么问题?而全大写只是纯粹的眼睛疲劳

标签: sql sql-server database ssms columnname


【解决方案1】:

您可能正在寻找类似于以下描述的扩展属性技术:

例如:

create table dbo.Stuffs (
  LOC_NUM_ABC int
);

EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'A table with things about the stuffs',
    @level0type = N'SCHEMA', @level0name = [dbo],
    @level1type = N'TABLE',  @level1name = N'Stuffs';

EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'The number of locations with stuffs',
    @level0type = N'SCHEMA', @level0name = [dbo],
    @level1type = N'TABLE',  @level1name = N'Stuffs',
    @level2type = N'COLUMN', @level2name = N'LOC_NUM_ABC';

然后您可以使用以下方法查询值:

select value
from fn_listextendedproperty('MS_Description', 'schema', 'dbo', 'table', 'Stuffs', default, default);
value
A table with things about the stuffs

或者:

select value
from fn_listextendedproperty('MS_Description', 'schema', 'dbo', 'table', 'Stuffs', 'column', 'LOC_NUM_ABC');
value
The number of locations with stuffs

也许具有讽刺意味的是,文档存储过程sp_addextendedpropertysp_updateextendedpropertysp_dropextendedpropertysys.fn_listextendedproperty 的文档相当少,因为没有官方表格(我可以找到)描述@name 的 Microsoft 用法参数值及其定义。

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 2023-04-05
    • 2011-07-15
    • 2011-01-27
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    相关资源
    最近更新 更多