【问题标题】:Querying Column Definition for Data Length - SQL Server查询数据长度的列定义 - SQL Server
【发布时间】:2020-11-25 19:26:09
【问题描述】:

我希望为数据库生成所有表、列和数据类型的列表。

这个查询将给我除了数据类型的长度之外的所有信息:

SELECT t.name AS TableName,
       c.name AS ColumnName,
       y.name AS DataType
FROM sys.tables AS t
    JOIN sys.columns AS c ON t.object_id = c.object_id
    JOIN sys.types AS y ON y.user_type_id = c.user_type_id
WHERE t.name = 'Tablename';

但是对于数据类型为varcharnvarchar 的列,我还想查看每个列的最大限制。

例如,如果 ColumnA 是 varchar(100) - 我在哪里可以找到数据库中的 100 限制?到目前为止,我找不到该信息的存储位置。

谢谢,

【问题讨论】:

    标签: tsql sql-server-2016


    【解决方案1】:

    sys.columns 有一个名为max_length 的属性:

    SELECT 
        t.name AS TableName,
        c.name AS ColumnName,
        c.max_length,
        y.name AS DataType
    FROM
        sys.tables AS t
    JOIN 
        sys.columns AS c ON t.object_id = c.object_id
    JOIN 
        sys.types AS y ON y.user_type_id = c.user_type_id
    WHERE 
        t.name = 'Tablename';
    

    查看official MS documentation on sys.columns了解更多详情

    【讨论】:

    • 谢谢 - 我完全错过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多