Как найти, где мои файлы данных и файлы журналов хранятся с использованием Smo в C # - PullRequest
0 голосов
/ 17 июня 2009

Может кто-нибудь сказать, пожалуйста, как найти место, где мои данные и файлы журналов хранятся с использованием SMO в c #?

Ответы [ 3 ]

4 голосов
/ 17 июня 2009
 public static void foo() {
     Microsoft.SqlServer.Management.Smo.Server server = new ServerConnection("<server name>");
     Microsoft.SqlServer.Management.Smo.Database db = server.Databases["<database name>"];
     Console.WriteLine(db.FileGroups[0].Files[0].FileName);
     Console.WriteLine(db.LogFiles[0].FileName);
  }

В этом примере предполагается, что у вас достаточно прав на сервер \ базу данных, и возвращается только полный путь \ имя файла для первого файла базы данных / журнала в файловой группе.

FileGroups, Files и LogFiles - это коллекции SMO, которые будут содержать один или несколько соответствующих элементов.

0 голосов
/ 05 июня 2011
$targetServerName = "localhost"
$targetDatabaseName = "dbname"

$targetServer = New-Object ("Microsoft.SqlServer.Management.Smo.Server")$targetServerName 
$database = $targetServer.Databases[$targetDatabaseName]

foreach ($fg in $database.FileGroups)
{
  foreach ($df in $fg.Files)
    {
    "Filegroup type : " + $fg.Name + " DataFiles : "  + $df.FileName

    }
}
foreach ($lf in $database.LogFiles)
{
   "Log file : " + $lf.FileName
}

Это должно дать вам точные пути.

0 голосов
/ 17 июня 2009

очевидно, вы можете «получить имена логических данных и файлов журналов из групп FileGroups и Files».

см. текст ссылки

...