我一直在开发一个应用程序,列出sql数据库中的所有表,以便进行一些编辑。 但并非所有表格都应该可见。 任何人都可以告诉我如何过滤我的查询,以便它只显示所需的表吗?
我现在的代码是:
con.Open();
using (SqlCommand com = new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con))
{
using (SqlDataReader reader = com.ExecuteReader())
{
tabelas.Items.Clear();
while (reader.Read())
{
tabelas.Items.Add((string)reader["TABLE_NAME"]);
}
}
}
我认为它应该像
SELECT TABLES I WANT TO SHOW FROM INFORMATION_SCHEMA.TABLES
但在reader
我应该插入什么?
提前致谢,
答案 0 :(得分:0)
好吧,你可以创建一个“所需”表名列表,然后检查“reader [”TABLE_NAME“]”是否在你的OK表列表中,或者使用SQL“IN”语句。
答案 1 :(得分:0)
在ORACLE中,这就是我如何获得所有以Word ANALYSIS
开头的表的列表
SELECT OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OBJECT_NAME LIKE 'ANALYSIS%';
在SQL Server中,您可以使用相同的构造
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG LIKE'test%'
或使用IN CLAUSE
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN ('t1','t2','t3' )