Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use SqlConnection.GetSchema to get Tables Only (No Views)

When I use

SqlConnection.GetSchema("Tables");

it returns all the tables AND views for the target database.

Is there any way to just return tables? All the research I have done indicates I am doing this correctly yet it always returns the views like they are tables. I have dug down into the DataTable in debug and I can't even find a difference. The data types are reported the same... As far as I can tell, it can't differentiate between a view and a table. (It does make sense in a way since a view for all intents and purposes IS a table.)

I am using the Northwind database for testing.

I am writing the application in C#.

Here is the code that I am running to get the schema info. Pretty simple.

SQLCon.Open();
DataTable tables = SQLCon.GetSchema("Tables");
SQLCon.Close();

I would very much like to use the getschema method and not have to query the database in another fashion... if at all possible.

like image 477
Steve Avatar asked Dec 16 '22 17:12

Steve


1 Answers

Here is the complete syntax

DataTable table = connection.GetSchema("Tables", new string[] { null, null, null, "BASE TABLE" });
like image 179
Dave Avatar answered Dec 18 '22 08:12

Dave