0

谁能告诉我如何在 C# 中使用 SMO 找到我的数据和日志文件存储的位置?

4

3 回答 3

4
 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);
  }

此示例假定您对 Server\Database 有足够的权限,并且只返回文件组中第一个 db/log 文件的完整路径\文件名。

FileGroups、Files 和 LogFiles 是 SMO 集合,将包含一个或多个其各自的项目。

于 2009-06-17T12:41:27.260 回答
0

显然,您可以“从文件组和文件集合中获取逻辑数据和日志文件的名称”。

链接文字

于 2009-06-17T10:44:28.403 回答
0
$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
}

那应该为您提供确切的路径。

于 2011-06-05T05:25:07.497 回答