public static SqlUsedSpace GetUsedSpace(string tableName, string connectionString, StorageMode storageMode)
        {
            SqlConnection conn = null;
            SqlDataReader rdr  = null;

            try
            {
                conn = new
                       SqlConnection(connectionString);
                conn.Open();
                SqlCommand cmd = new SqlCommand("sp_spaceused", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@objname", tableName));
                cmd.Parameters.Add(new SqlParameter("@mode", storageMode.ToString()));
                rdr = cmd.ExecuteReader();
                if (rdr.Read())
                {
                    return(new SqlUsedSpace
                    {
                        name = rdr["name"].ToString(),
                        rows = rdr["rows"].ToString(),
                        data = rdr["data"].ToString(),
                        reserved = rdr["reserved"].ToString(),
                        index_size = rdr["index_size"].ToString(),
                        unused = rdr["unused"].ToString()
                    });
                }
            }
            catch
            {
                return(null);
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
                if (rdr != null)
                {
                    rdr.Close();
                }
            }

            return(null);
        }