【问题标题】:How do I check if a column exists in SQL Server?如何检查 SQL Server 中是否存在列?
【发布时间】:2010-09-18 22:55:40
【问题描述】:

如何检查 SQL Server 2000 中是否存在列?

【问题讨论】:

标签: sql-server metadata table-structure


【解决方案1】:
IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME='tablename' AND COLUMN_NAME='columname' )

【讨论】:

    【解决方案2】:
    If col_length('table_name','column_name') is null
        select 0 as Present
    ELSE
        select 1 as Present
    

    Present 为 0,table_name 中是否没有 column_name,否则为 1

    @CMS:我认为“INFORMATION_SCHEMA.COLUMNS”没有关于数据库中每个表的信息。因为这对我不起作用。但我的回答确实奏效了。

    【讨论】:

      【解决方案3】:

      在查询分析器中,选择包含您需要检查该字段是否存在的表的数据库,然后运行下面的查询。

      SELECT count(*) AS [Column Exists] 
      FROM SYSOBJECTS  
      INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID 
      WHERE 
       SYSOBJECTS.NAME = 'myTable' 
       AND SYSCOLUMNS.NAME = 'Myfield'
      

      【讨论】:

        【解决方案4】:

        这应该很好:

        if COLUMNPROPERTY(object_id('table_name'), 'column_name', 'ColumnId') is null
          print 'doesn\'t exist'
        else
          print 'exists'
        

        【讨论】:

          【解决方案5】:

          我不知道这个脚本是否可以在 sqlserver 2000 中工作,但在 2008 年可以工作:

          SELECT COLUMNS.*
          FROM INFORMATION_SCHEMA.COLUMNS COLUMNS, INFORMATION_SCHEMA.TABLES TABLES
          WHERE COLUMNS.TABLE_NAME=TABLES.TABLE_NAME AND UPPER(COLUMNS.COLUMN_NAME)=UPPER('column_name')
          

          【讨论】:

            猜你喜欢
            • 2010-09-13
            • 2016-03-06
            • 1970-01-01
            • 2010-09-15
            • 2010-10-15
            相关资源
            最近更新 更多