是否有一个SELECT命令可以列出所有附加数据库,类似于sqlite3中提供的.database命令?
答案 0 :(得分:16)
您不能使用我所知道的SELECT语句执行此操作(尽管您可能希望在main
数据库中查看,但此数据可能存储在那里)。但是,有一个解决方案。如果执行以下语句,它将返回为当前连接附加的数据库:
PRAGMA database_list;
第一行始终是主数据库,第二行始终是临时数据库。任何进一步的数据库都在前两个之后。您可以像对待c#中的代码中的SELECT语句一样对数据库运行此语句(或其他任何内容)。
这是一个很好的参考:
祝你好运!答案 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
完全是可选的,但是非常有用,因为这些杂用函数返回的列名在任何地方都没有记录。
但是请注意,未记录它们的部分原因是“ 此功能是实验性的,可能会更改”。