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

时间:2015-02-18 03:15:37

标签: c# sql sql-server

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

到目前为止,我已经四处寻找并找到了两种方法。

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

2 个答案:

答案 0 :(得分:5)

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

检查列是否存在; you use 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

对于表格,the query is a little similar

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

答案 1 :(得分:1)

查询information_schema views

select * 
from information_schema.columns
where column_name = @mycolumn
    and table_name = @mytable