SQL - 服务器上所有数据库的 INFORMATION_SCHEMA
INFORMATION_SCHEMA.TABLES
或 INFORMATION_SCHEMA.COLUMNS
仅适用于指定数据库。
是否可以使用 INFORMATION_SCHEMA
查询服务器上所有数据库的表元数据?
INFORMATION_SCHEMA.TABLES
or INFORMATION_SCHEMA.COLUMNS
work for only specified databases.
Is it possible to query table metadata for ALL databases on server by using INFORMATION_SCHEMA
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
修改了Dustin的代码(来自Dalex 的建议)用空格容纳数据库名称并从结果中消除常见的系统表。
Modified Dustin's code (from Dalex's suggestion) to accommodate database names with spaces and eliminate common system tables from results.
你可以使用这个:
You can use this:
这不是问题的答案,但此文本添加了上下文......并且文本可能对某人获得理解有用。
可能并且经常需要添加一个 use 子句来选择在 select 子句上方引用哪个数据库..
例如
This isn't the answer to the question but this text adds context ... and text is likely to be useful to someone to gain understanding.
It is possible and often required to add a use clause to select which database is being referenced above the select clause ..
e.g.
您只能通过使用动态查询进行数据库迭代来完成此操作。一种方法是使用 ms_ForEachDB 存储过程,第二种方法是查询 sys.databases 动态视图。
You can do this only by using dynamic query for database iteration. One way is using ms_ForEachDB stored procedure, second is querying sys.databases dynamic view.
将 Dalex 的答案扩展为代码。
Expanding Dalex's answer into code.