使用SQLite中的SELECT命令列出附加数据库

时间:2010-03-18 21:13:43

标签: c# sqlite system.data.sqlite

是否有一个SELECT命令可以列出所有附加数据库,类似于sqlite3中提供的.database命令?

2 个答案:

答案 0 :(得分:16)

您不能使用我所知道的SELECT语句执行此操作(尽管您可能希望在main数据库中查看,但此数据可能存储在那里)。但是,有一个解决方案。如果执行以下语句,它将返回为当前连接附加的数据库:

PRAGMA database_list;

第一行始终是主数据库,第二行始终是临时数据库。任何进一步的数据库都在前两个之后。您可以像对待c#中的代码中的SELECT语句一样对数据库运行此语句(或其他任何内容)。

这是一个很好的参考:

SQLite PRAGMA statement reference

祝你好运!

答案 1 :(得分:0)

所接受的答案在发布时是正确的,但是在SQLite 3.16.0和更高版本中,也可以使用所谓的pragma functions来访问大多数副作用免费编译指示。

这意味着您可以写:

sqlite> .headers on
sqlite> select * from pragma_database_list;
seq|name|file
0|main|
2|a|D:\a.sqlite
3|b|D:\b.sqlite
4|c|D:\c.sqlite

.headers on完全是可选的,但是非常有用,因为这些杂用函数返回的列名在任何地方都没有记录。

但是请注意,未记录它们的部分原因是“ 此功能是实验性的,可能会更改”。