SQL Server ile ilgili tutulan registry kayıtlarının değerini sunucuya bağlanmaya gerek kalmadan xp_instance_regread extended stored procedure ile okuyabilirsiniz.
Örnek-1: Registry'den Database Default Data Location(veritabanı data dosyalarının oluşturulacağı dizin) bilgisini okuma:
declare @value nvarchar(4000)
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @value output
select @value DefaultDataDir
Benzer şekilde şu anki geçerli veritabanı data dosyalarının oluşturlacağı dizini ağıdaki T-SQL ile alabilirsiniz:
select SERVERPROPERTY('instancedefaultdatapath') AS [DefaultFile]
Örnek-2: Registry'den Database Default Log Location(veritabanı log dosyalarının oluşturulacağı dizin) bilgisini okuma:
declare @value nvarchar(4000)
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @value output
select @value DefaultLogDir
Benzer şekilde şu anki geçerli veritabanı logdosyalarının oluşturlacağı dizini ağıdaki T-SQL ile alabilirsiniz:
select SERVERPROPERTY('instancedefaultlogpath') AS [DefaultLog]
Not: SERVERPROPERTY('instancedefaultdatapath') ve SERVERPROPERTY('instancedefaultlogpath') değerlerini SQL Server 2012 ile birlikte geldi. Dolayısıyla bu değerler SQL server 2012 öncesi sürümlerde NULL olarak döner. Scriptler SQL Server 2008/2012/2014/2016 sürümlerinde test edildi.
Hiç yorum yok:
Yorum Gönder