【问题标题】:How do you tell if a particular column is in a table?如何判断特定列是否在表中?
【发布时间】:2018-09-17 07:57:49
【问题描述】:

我想知道使用什么查询来确定给定表中是否存在特定的表列。

例如,我想知道名为 Address_1 的列是否存在于名为 Visits 的表中。

我认为它可能在数据字典表中。

【问题讨论】:

    标签: sqlite data-dictionary


    【解决方案1】:

    编辑:正如@tidwall 所指出的,此答案适用于 SQL Server,不适用于 sqlite。 This stackoverflow thread 有 sqlite 的正确答案。


    SELECT name
    FROM sysobjects
    WHERE id IN (
        SELECT id
        FROM syscolumns
        WHERE name = 'THE_COLUMN_NAME'
    )
    

    此外,这会产生所有表格列信息供您享受解析:

    SELECT COLUMN_NAME, data_type, character_maximum_length
    FROM information_schema.columns
    WHERE TABLE_NAME = 'your_table_name'
    

    【讨论】:

    • 非常感谢您的发言。
    • 我尝试了第一个查询,但我得到一个“不存在这样的表”错误,所以我将尝试使用 Count(*) 函数的另一个语句,这对我来说应该一样好。
    • @vzwick:这个问题是针对 SQLite,而不是 SQL Server。 syscolumns 在 SQLite 中不存在。答案是here
    • @tidwall 感谢您的指点,相应地更新了答案。
    猜你喜欢
    • 2012-05-17
    • 2015-05-25
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多