sql-server - 如何检查 SQL Server 表中是否存在列

标签 sql-server sql-server-2008 tsql sql-server-2012 sql-server-2016

如果特定列不存在,我需要添加它。我有类似以下的内容,但它总是返回 false:

IF EXISTS(SELECT *
          FROM   INFORMATION_SCHEMA.COLUMNS
          WHERE  TABLE_NAME = 'myTableName'
                 AND COLUMN_NAME = 'myColumnName') 

如何检查 SQL Server 数据库的表中是否存在某列?

最佳答案

SQL Server 2005 及以上版本:

IF EXISTS(SELECT 1 FROM sys.columns 
          WHERE Name = N'columnName'
          AND Object_ID = Object_ID(N'schemaName.tableName'))
BEGIN
    -- Column Exists
END

马丁·史密斯的版本较短:

IF COL_LENGTH('schemaName.tableName', 'columnName') IS NOT NULL
BEGIN
    -- Column Exists
END

关于sql-server - 如何检查 SQL Server 表中是否存在列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/133031/

相关文章:

sql - 按组中的最大值排序

c# - 每次对其执行操作时,SqlDataReader 对象都会抛出异常

sql-server - FREETEXT 搜索 - 根据匹配程度对结果进行排序

sql - SQL Server 中的 WHERE 中的案例

sql-server - 如何优化表仅用于快速插入?

sql - 我可以将存储过程的结果放入 SQL 中另一个存储过程的游标中吗

sql-server - 存储过程是否锁定表/行?

sql-server - 如何使用 sql-server 从订单中计算重叠的订阅天数

sql-server - SQL Server - 根据另一列强制一列的唯一性

sql - 排除匹配子查询的记录