如何获取MSSQL数据库的所有表?

时间:2012-05-09 14:17:59

标签: c# sql sql-server

我正在编写一个工具来计算表中的所有条目。我的问题是,如何获取现有数据库的所有表?我正在使用Microsoft SQL Server 2008 R2,我已经有了一个方法来获取表的字符串数组:

List<string> lResult = new List<string>();
        SqlConnection sqlConn10 = new SqlConnection(sConnStr);
        sqlConn10.Open();
        SqlCommand sqlComm10 = new SqlCommand("SELECT " + sColumn + " FROM " + sTable + " WHERE " + sWhere, sqlConn10);
        SqlDataReader myReader10 = sqlComm10.ExecuteReader();
        int i = 0;
        try
        {
            while (myReader10.Read())
            {
                lResult.Add(myReader10.GetString(0));
                i++;
            }
        }
        catch
        {
            myReader10.Close();
            sqlConn10.Close();
        }

        return lResult.ToArray();
}

3 个答案:

答案 0 :(得分:2)

使用sql-command

select * from sys.tables

或您使用DataTable

DataTable dt = SQLConnection.GetSchema("Tables");
foreach (DataRow row in dt.Rows)
{
 ...
}

答案 1 :(得分:2)

SELECT * FROM INFORMATION_SCHEMA.TABLES

INFORMATION_SCHEMA有很多关于数据库的有用元数据。

答案 2 :(得分:1)

获取您需要使用类似于此的查询的所有表的列表:

SELECT * 
FROM information_schema.tables