如何获取Azure数据库的上次访问日期时间

时间:2020-07-21 06:51:44

标签: sql sql-server azure azure-sql-database

我正在尝试获取Azure Server中每个数据库的上次访问日期和时间。我到目前为止发现的是下面的查询,该查询为我们提供了最后的访问权限:

'SELECT max(last_user_update) lastUpdate ,max(last_user_scan) as last_user_scan FROM sys.dm_db_index_usage_stats'

但是,这里的问题是,我必须对每个数据库运行此查询才能确定最后一次访问。我没有找到一种可以直接在主数据库上运行单个查询的方法,该查询可以满足我的需求。

我知道,如果服务器重新启动,上次访问日期将被清除并重置。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以做的是,使用SQLCMD生成输出文件,然后使用DOS Shell将结果附加到文件中。您必须先连接一个数据库,然后获取结果并追加到文件中。

仔细观察,第一个SQLCMD创建输出文件(>),随后的SQLCMD附加到输出文件(>>)。

SQLCMD -S ServerName -D DatabaseName1 -Q "SELECT max(last_user_update) lastUpdate 
,max(last_user_scan) as last_user_scan, DB_NAME() AS Database_Name FROM
 sys.dm_db_index_usage_stats" > c:\dev\userAccessDetails.txt #creates outputfile

SQLCMD -S ServerName -D DatabaseName1 -Q "SELECT max(last_user_update) lastUpdate 
,max(last_user_scan) as last_user_scan, DB_NAME() AS Database_Name FROM 
sys.dm_db_index_usage_stats" >> c:\dev\userAccessDetails.txt ##appends to output file