使用SqlConnection.GetSchema仅获取表(无视图)
我用的时候
SqlConnection.GetSchema("Tables");
它返回目标数据库的所有表和视图。
有没有办法只返回表? 我所做的所有研究表明我正确地做了这一点,但它总是返回视图,就像它们是表格一样。 我已经在调试中挖掘了DataTable,我甚至找不到区别。 报告的数据类型相同……据我所知,它无法区分视图和表。 (它在某种程度上是有意义的,因为所有意图和目的的视图都是一个表。)
我正在使用Northwind数据库进行测试。
我正在用C#编写应用程序。
这是我运行以获取架构信息的代码。 很简单。
SQLCon.Open(); DataTable tables = SQLCon.GetSchema("Tables"); SQLCon.Close();
我非常想使用getschema方法而不必以另一种方式查询数据库……如果可能的话。
根据这篇文章 ,返回的数据表有一个列table_type
,它告诉你它是一个VIEW
还是一个BASE TABLE
。
使用该列过滤掉C#端的视图。
这是完整的语法
DataTable table = connection.GetSchema("Tables", new string[] { null, null, null, "BASE TABLE" });