SQL Server : Déterminer où se trouvent les répertoires par défaut via TSQL
Voici un truc que je n'ai pas trouvé via moteur de recherche interposé : comment savoir où se trouve les différent répertoires de recherche ?
Voici un code qui vous permettra de le savoir. Il fait massivement appel à des procédures stockées système permettant la lecture de la base de registre. Le plus compliqué dans le cas présent est d'être assez générique pour faire face à tous les cas de nom d'instance et autres. Ce code est exécutable par n'importe quel login, les doits de lecture dans la clef de base de registre de l'instance n'étant pas restreints.
L'exemple pour la racine de l'installation de l'instance :
DECLARE @path nvarchar(4000), @regpath nvarchar(4000);
DECLARE @instancename nvarchar(128), @regvalue nvarchar(1000);
-- Détermine le nom de l'instance
SELECT @instancename =
CAST(CASE
WHEN
SERVERPROPERTY('InstanceName')
IS
NULL
THEN
'MSSQLSERVER'
ELSE
serverproperty('InstanceName')
END
as
nvarchar(128))
SET @regpath =
'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL'
;
EXEC
master..xp_regread
@rootkey='HKEY_LOCAL_MACHINE',
@key=@regpath,
@value_name=@instancename,
@value=@regvalue OUTPUT
SET @regpath =
'Software\Microsoft\Microsoft SQL Server\'
+ @regvalue +
'\Setup'
;
-- Trouve le chemin d'installation
EXEC
master..xp_regread
@rootkey='HKEY_LOCAL_MACHINE',
@key=@regpath,
@value_name='SQLPath',
@value=@regvalue OUTPUT
SET @path = @regvalue ;
PRINT @path
Pour savoir où se trouve les autres répertoires, en voici une liste avec la clef de base de registre associée :
-
SQLBinRoot : Les binaires de SQL Server, y compris dans SQL Server 2008, la base de données de ressource
-
SQLDataRoot : l'emplacement par défaut des données de SQL Server (celui précisé à l'installation, où vous trouverez généralement les bases de données système)
-
FullTextDefaultPath : l'emplacement par défaut des index (2005 et -), dictionnaire de synonyme et noise words (2005 et -)
-
MSSQLServer\BackupDirectory : l'emplacement par défaut des sauvegardes quand le chemin est omis
-
MSSQLServer\DefaultData : L'emplacement par défaut des nouveaux fichiers de données tel qu'il est défini dans les propriétés de l'instance. Si non défini, cette clef n'existe pas.
-
MSSQLServer\DefaultLog : Idem que Data, mais pour les journaux de transactions.
Bonne lecture...
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :