我知道通过执行以下操作来获取数据库名称:
month, day, year = map(int, date_string.split('/'))
我希望能够做的是返回与服务器上每个数据库相关的所有文件。要获取每个数据库的文件列表,我必须执行类似以下操作:
select *
from master..sysdatabases
order by Name
不幸的是,我需要使用use [database]
select *
from sysfiles
的使用前缀仅从我使用的数据库中提取。
理想情况下,我希望能够将其包装到一个可以通过odbc数据库监控项调用并挂钩到zabbix的视图中。
我们说我有3个数据库:
sysfiles
我想要一个会显示的视图
DB1
DB2
DB3
答案 0 :(得分:3)
您可以使用sys.databases
和sys.master_files
观点进行查询:
SELECT
db.name,
FileName = mf.name,
PhysicalFileName = mf.physical_name,
Type = mf.type_desc
FROM sys.databases db
INNER JOIN sys.master_files mf
ON mf.database_id = db.database_id
WHERE db.name NOT IN('msdb', 'master', 'tempdb', 'model')
ORDER BY db.name