Access数据库 - 检索存储查询的名称?

时间:2012-01-10 09:25:08

标签: c# vb.net ms-access database-schema

这可能是以编程方式吗?获取存储查询的名称或检查是否存在具有特定名称的查询?

3 个答案:

答案 0 :(得分:2)

使用OleDbConnection.GetOleDbSchemaTable方法。

OleDbConnection connection = new OleDbConnection(@"connection_string");
connection.Open();
DataTable schemaTable = connection.GetOleDbSchemaTable(
         OleDbSchemaGuid.Tables,
           new object[] { null, null, null, "VIEW" });
foreach (DataRow row in schemaTable.Rows )
{
    Console.WriteLine(row["TABLE_NAME"]);
}

答案 1 :(得分:0)

您可以查询Procedures表以获取所有存储过程

ProcedureName字段包含过程的名称

答案 2 :(得分:0)

您还可以使用未记录但使用频繁的MSysObjects表:

SELECT [Name]
FROM [MSysObjects]
WHERE [Type] = 5

这将包括Access为组合框,列表框和子表单创建的任何系统查询。它们都以波浪号开头,因此您可以将它们排除在外:

SELECT [Name]
FROM [MSysObjects]
WHERE [Type] = 5
    AND [Name] NOT LIKE "~*"