Назад | Перейти на главную страницу

Каталоги данных и журналов по умолчанию с удаленного сервера с использованием TSQL

Как узнать каталоги независимо от имени экземпляра, имени кластера или экземпляра по умолчанию?

** ОБНОВЛЕНИЕ: ** Очень важно, что вы не можете читать данные реестра с помощью nvarchar (MAX) только со значением nvarchar, например, nvarchar (4000). Я не знал этого, поэтому мои чтения всегда терпели неудачу ...

** UPDATE2: ** В кластерах каталог данных по умолчанию расположен на

Программное обеспечение \ Microsoft \ MSSQLServer \ Setup

реестр в ключе SQLDataRoot.

** UPDATE3: ** Для удаленного сервера используйте связанный сервер!

Это последний сценарий:

declare @datadir nvarchar(4000)
        ,@logdir nvarchar(4000);

EXEC master.dbo.xp_instance_regread 
    N'HKEY_LOCAL_MACHINE'
    , N'Software\Microsoft\MSSQLServer\MSSQLServer'
    , N'DefaultData'
    , @datadir output;

IF @datadir IS NULL
BEGIN
EXEC master.dbo.xp_instance_regread 
    N'HKEY_LOCAL_MACHINE'
    , N'Software\Microsoft\MSSQLServer\Setup'
    , N'SQLDataRoot'
    , @datadir output;
END
EXEC master.dbo.xp_instance_regread 
    N'HKEY_LOCAL_MACHINE'
    , N'Software\Microsoft\MSSQLServer\MSSQLServer'
    , N'DefaultLog'
    , @logdir output;

SELECT @datadir as Data, ISNULL(@logdir,@datadir) as Log;

Вы найдете каталоги данных и журналов по умолчанию в реестре, которые можно прочитать из TSQL. xp_instance_regread хранимая процедура. Пожалуйста, прочтите этот пост для получения полной информации.

http://tenbulls.co.uk/2010/07/08/how-to-set-and-manage-your-sql-server-default-paths/