Доступ к информации о системе SQL Server является важным для административных скриптов и устранения конкретных проблем. Однако, с переходом от SQL Server 2000 к 2005 году, некоторые объекты, на которые мы полагались, больше не рекомендуются в качестве источников информации. В этой статье мы опишем основные наборы данных, которые необходимо получить для баз данных и сопоставим объекты из SQL Server 2000 с 2005 годом.
Таблица/Представление системы баз данных
Таблица/представление системы баз данных является источником для всех баз данных на SQL Server, включая имя, владельца, дату создания и другие данные. В SQL Server 2000 вы можете получить эту информацию с помощью следующего запроса:
SELECT * FROM master.dbo.sysdatabases
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT * FROM sys.databases;
Таблица/Представление системы файлов баз данных
Таблица/представление системы файлов баз данных предоставляет информацию о именах файлов, их размере, расположении, типе (база данных или журнал) и других данных для текущей подключенной базы данных. В SQL Server 2000 вы можете получить эту информацию с помощью следующего запроса:
SELECT * FROM dbo.sysfiles
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT * FROM sys.database_files;
Таблица/Представление системы файлов баз данных (все базы данных)
Таблица/представление системы файлов баз данных также предоставляет информацию о файлах для всех баз данных. В SQL Server 2000 вы можете получить эту информацию с помощью следующего запроса:
SELECT * FROM master.dbo.sysaltfiles
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT * FROM sys.master_files;
Статистика ввода-вывода для файлов баз данных
Статистика ввода-вывода для файлов баз данных возвращает статистику использования на основе каждого файла. В SQL Server 2000 вы можете получить эту информацию с помощью следующего запроса:
-- Один файл базы данных
SELECT * FROM ::fn_virtualfilestats(1, 1)
-- Все файлы баз данных
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);
Метаданные базы данных
Метаданные базы данных предоставляют важную информацию о базе данных, такую как имя, размер и примечания. В SQL Server 2000 вы можете получить эту информацию с помощью следующего запроса:
EXEC master.dbo.sp_databases
В SQL Server 2005 рекомендуется использовать следующий запрос:
EXEC master.dbo.sp_databases;
Изменение владельца базы данных
Хранимая процедура sp_changedbowner
позволяет изменить владельца базы данных. В SQL Server 2000 вы можете использовать следующий запрос:
EXEC sp_changedbowner sa
В SQL Server 2005 рекомендуется использовать следующий запрос:
EXEC sp_changedbowner sa;
Перевод идентификатора базы данных в имя
Системная функция DB_NAME
возвращает имя базы данных при передаче идентификатора базы данных из таблицы системы баз данных. В SQL Server 2000 вы можете получить имя базы данных master с помощью следующего запроса:
SELECT DB_NAME(1)
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT DB_NAME(1);
Перевод имени базы данных в идентификатор
Системная функция DB_ID
возвращает идентификатор базы данных при передаче имени базы данных из таблицы системы баз данных. В SQL Server 2000 вы можете получить идентификатор базы данных master с помощью следующего запроса:
SELECT DB_ID('master')
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT DB_ID('master');
Статус базы данных
Системная функция DATABASEPROPERTYEX
возвращает значение одного из приблизительно 25 специфических для базы данных значений. В SQL Server 2000 вы можете получить статус базы данных master с помощью следующего запроса:
SELECT DATABASEPROPERTYEX('master', 'Status')
В SQL Server 2005 рекомендуется использовать следующий запрос:
SELECT DATABASEPROPERTYEX('master', 'Status');
Понимая соответствие между SQL Server 2000 и 2005 годом для получения информации о системе, вы можете убедиться, что ваши скрипты работают правильно при переходе на SQL Server 2005. Эти запросы помогут вам собрать необходимые данные для административных задач и устранения неполадок.