我需要获取 SQL 服务器迁移项目的数据库大小列表。我们要迁移的 SQL Server 服务器安装了三个实例,一个是默认实例,两个是命名实例。如果重要的话,它在 Server 2008 R2 上运行 SQL Server 2008 R2。
为了得到这个列表,我删除了我在上一个职位上作为事实上/意外 DBA 使用的旧 T-SQL“脚本”,它在默认实例上按预期工作,但没有返回任何一个命名实例的数据。
SELECT [Database Name] = DB_NAME(database_id),
[Type] = CASE WHEN Type_Desc = 'ROWS' THEN 'Data File(s)'
WHEN Type_Desc = 'LOG' THEN 'Log File(s)'
ELSE Type_Desc END,
[Size in MB] = CAST( ((SUM(Size)* 8) / 1024.0) AS DECIMAL(18,2) )
FROM sys.master_files
GROUP BY GROUPING SETS
(
(DB_NAME(database_id), Type_Desc),
(DB_NAME(database_id))
)
ORDER BY DB_NAME(database_id), Type_Desc DESC
GO
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我原因(以及如何解决),或提出更好的解决方案吗?
(它一定是FROM sys.master_files一点,因为它还能是什么,但我不确定我应该在命名实例上使用什么。)
编辑:下面是我在我的命名实例上看到的内容,无论如何......所以如果这段代码确实/应该适用于命名实例,那么关于它为什么不适用于这些实例的想法将不胜感激。