是否有一个SELECT命令可以列出所有连接的数据库,类似于SQLITE3中提供的.database命令?
xqnpmsa81#
据我所知,您不能使用SELECT语句做到这一点(尽管您可能希望在main数据库中查找,此数据可能存储在那里)。然而,有一个解决方案。如果执行以下语句,它将返回为当前连接附加的数据库:
main
PRAGMA database_list;
第一行将始终是主数据库,第二行将始终是临时数据库。任何进一步的数据库都在这前两个之后。您可以在数据库上运行该语句,方法与在C#代码中运行SELECT语句的方式相同(或任何其他语句)。这里有一个很好的参考:SQLite PRAGMA statement reference祝好运!
zbdgwd5y2#
被接受的答案在发布时是正确的,但在SQLite 3.16.0和更高版本中,大多数副作用自由的杂注也可以作为所谓的杂注函数访问。这意味着你可以写道:
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是完全可选的,但非常有用,因为这些杂注函数返回的列名在任何地方都没有文档。但请注意,它们未被记录的部分原因是“此功能是试验性的,可能会更改”。
.headers on
oknwwptz3#
下面的命令可以列出附加的数据库:
.databases
3条答案
按热度按时间xqnpmsa81#
据我所知,您不能使用SELECT语句做到这一点(尽管您可能希望在
main
数据库中查找,此数据可能存储在那里)。然而,有一个解决方案。如果执行以下语句,它将返回为当前连接附加的数据库:第一行将始终是主数据库,第二行将始终是临时数据库。任何进一步的数据库都在这前两个之后。您可以在数据库上运行该语句,方法与在C#代码中运行SELECT语句的方式相同(或任何其他语句)。
这里有一个很好的参考:
SQLite PRAGMA statement reference
祝好运!
zbdgwd5y2#
被接受的答案在发布时是正确的,但在SQLite 3.16.0和更高版本中,大多数副作用自由的杂注也可以作为所谓的杂注函数访问。
这意味着你可以写道:
.headers on
是完全可选的,但非常有用,因为这些杂注函数返回的列名在任何地方都没有文档。但请注意,它们未被记录的部分原因是“此功能是试验性的,可能会更改”。
oknwwptz3#
下面的命令可以列出附加的数据库: