检查SQL Server数据库表中是否存在表或列

在SQL Server数据库中创建列或表之前,我想检查所需的表和/或列是否存在。

到目前为止,我搜索了两种方法。

  • 存储过程,我不想使用
  • 通过使用SqlCommand.ExecuteScalar()方法并捕获一个异常来确定表/列是否存在,这对我来说是一种解决方法,但不是一个完美的解决方案。
  • 是否有另一种方法来检查SQL Server中是否存在表/列?


    要在创建模式之前检查模式是否存在,请执行以下操作:

    检查列是否存在; 你使用IF NOT EXISTS ,然后把你的实际查询放在里面。

    IF NOT EXISTS(SELECT * FROM sys.columns 
            WHERE [name] = N'columnName' AND [object_id] = OBJECT_ID(N'tableName'))
    BEGIN
        ALTER TABLE ADD COLUMN MYCOLUMN
    END
    

    对于表格,查询有点类似:

    IF (NOT EXISTS (SELECT * 
                     FROM INFORMATION_SCHEMA.TABLES 
                     WHERE TABLE_SCHEMA = 'TheSchema' 
                     AND  TABLE_NAME = 'TheTable'))
    BEGIN
        CREATE TABLE MYTABLE
    END
    

    针对information_schema视图进行查询:

    select * 
    from information_schema.columns
    where column_name = @mycolumn
        and table_name = @mytable
    
    链接地址: http://www.djcxy.com/p/94421.html

    上一篇: Check if table or column exists in SQL Server database table

    下一篇: Create indexes for all tables in database?