【问题标题】:How can I get column descriptions/comments for a table in SQL Server如何获取 SQL Server 中表的列描述/注释
【发布时间】:2020-12-31 07:13:32
【问题描述】:

在我的 laravel 应用程序中,我想获取给定 SQL Server 表的所有列的 cmets。

这是我迄今为止尝试过的:

$query    = "SELECT sys.objects.name AS TableName, sys.columns.name AS ColumnName,
                   ep.name AS PropertyName, ep.value AS Description
            FROM sys.objects
            INNER JOIN sys.columns ON sys.objects.object_id = sys.columns.object_id
            CROSS APPLY fn_listextendedproperty(default,
                              'SCHEMA', schema_name(schema_id),
                              'TABLE', sys.objects.name, 'COLUMN', sys.columns.name) ep
            ORDER BY sys.objects.name, sys.columns.column_id";

$columnDetails =  DB::connection($user->getConnectionName())->select(DB::raw($query)

这就是我的表格在 DBeaver 中的样子:

但是,我从我的代码中得到了这个结果,它给出了null 的“描述”:

我是否在查询或表设置中做错了什么,导致它为空?


附加信息

我通过 DBeaver UI 添加了原始评论,认为这可能不会像我认为的那样做,我返回并通过 SQL 添加了另一列和评论:

EXEC laravel.sys.sp_addextendedproperty 'MS_Description', 'Some test description', 'schema', 'guest', 'table', 'users', 'column', 'test' GO

不幸的是,这导致了同样的问题:

【问题讨论】:

    标签: sql sql-server laravel


    【解决方案1】:

    尝试像这样更改查询:

    $query    = "select so.name as TableName, sc.name as ColumnName,
                    ep.name as PropertyName, ep.value as Description
                from sys.objects so
                join sys.columns sc on so.object_id = sc.object_id
                join sys.extended_properties ep
                    on sc.object_id = ep.major_id and sc.column_id = ep.minor_id
                order by so.name, sc.column_id";
    
    $columnDetails =  DB::connection($user->getConnectionName())->select(DB::raw($query)
    

    【讨论】:

    • 不幸的是,这会产生相同的结果(即 MS_Description 仍然为空)。也许我错误地设置了MS_Description?我假设在 DBeaver 的 UI 中添加“描述正在为列设置 MS_Description 扩展属性,但也许不是?
    • 也许您在查询中使用了没有元数据权限的用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多