SQL Server: sys.master_files против sys.database_files - PullRequest
7 голосов
/ 13 ноября 2010

В чем разница между sys.master_files и sys.database_files?У меня есть около 20 баз данных в моем экземпляре, но когда я запрашиваю файлы sys.master_files, я не получаю никаких строк.Зачем?Когда я запрашиваю sys.database_files, я получаю информацию о файлах базы данных, касающихся текущей базы данных.

1 Ответ

6 голосов
/ 13 ноября 2010

sys.master_files :

Содержит строку для файла базы данных, сохраненную в базе данных master.Это единственное общесистемное представление.

sys.database_files :

Содержит строку для файла базы данных, хранящуюся всама база данных.Это представление для каждой базы данных.

Итак, SELECT * FROM sys.master_files должен перечислять файлы для каждой базы данных в экземпляре, тогда как SELECT * FROM sys.database_files должен перечислять файлы для конкретного контекста базы данных.

Тестируя это здесь (SQL 2K8), он работает как указано выше?

Обновление: Если вы не видите строки из sys.master_files, это может быть проблема с разрешениями, так какСостояние BOL:

Минимальные разрешения, необходимые для просмотра соответствующей строки: CREATE DATABASE, ALTER ANY DATABASE или VIEW ANY DEFINITION.

Whereas для sys.database_filesпросто требует членства в общественной роли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...