SQL Server數據庫的表名等信息屬於架構集合的一部分,ADO.NET中的SqlConnection類包含的GetSchema 方法用於獲取支持的架構集合列表,因此,要確定SQL Server 數據庫中表是否存在是否存在,可通過SqlConnection.GetSchema("Tables")來獲得,該方法返回一個DataTable,DataTable中包含table_catalog、table_schema、table_name、table_type等4列,table_name列即為數據表名。
示例代碼如下:

using System; using System.Data; using System.Data.SqlClient; namespace ScratchLine.cn { public class Table { public Table() { } /// <summary> /// 判斷數據庫中名為tableName的表是否存在 /// </summary> /// <param name="tableName">要查詢的表名</param> /// <param name="connectionString">數據庫連接字符串</param> /// <returns></returns> public bool Exist(string tableName, string connectionString) { bool bExist = false; SqlConnection _Connection = new SqlConnection(connectionString); try { _Connection.Open(); using (DataTable dt = _Connection.GetSchema("Tables")) { foreach (DataRow dr in dt.Rows) { if (string.Equals(tableName, dr[2].ToString())) { bExist = true; break; } } } } catch (Exception ex) { throw ex; } finally { _Connection.Dispose(); } return bExist; } } }
要了解更多關於SQL Server架構集合的信息,可參看官方文檔:https://msdn.microsoft.com/zh-cn/library/ms254969(v=vs.100).aspx