【问题标题】:Set initial growth size for database using PowerShell使用 PowerShell 设置数据库的初始增长大小
【发布时间】:2014-05-12 04:40:42
【问题描述】:

我目前正在使用 PowerShell 创建一个数据库,如下所示:

$db = New-Object Microsoft.SqlServer.Management.Smo.Database($server, $database)
$db.Collation = "...";
...

$db.Create()

现在我的问题是:如何设置数据和日志文件的初始大小以及它们各自的增长大小?

到目前为止,我尝试了以下方法:

foreach ($fg in $db.FileGroups) {
  foreach($f in $fg) {
      $f.Size = $initialDataFileSizeInKB
      $f.Growth = $dataFileGrowthInKB
      $f.GrowthType = [Microsoft.SqlServer.Management.Smo.FileGrowthType]::KB
    }
  }
}

foreach($lf in $db.LogFiles) {
    $lf.Size = $initialLogFileSizeInKB
    $lf.Growth = $logFileGrowthInKB
    $lf.GrowthType = [Microsoft.SqlServer.Management.Smo.FileGrowthType]::KB
}

但是,这不起作用 - 问题似乎是还没有文件或日志文件。如何设置默认值?

【问题讨论】:

  • 用 TSQL 语句创建数据库有什么问题?
  • 我不是在寻找快速解决方案,我想使用管理对象编写一个干净的解决方案。

标签: sql-server powershell sql-server-2012 powershell-4.0


【解决方案1】:

对于 Growth 和 GrowthType 修改单个文件。

foreach ($fg in $db.FileGroups) {
   foreach ($f in $fg.Files) {
      $f.Growth = $dataFileGrowthInKB
      $f.GrowthType = 'KB'
      $f.Alter()
   }
}
我不确定是否要修改初始大小。您是否尝试将其设置为数据库创建的一部分?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    相关资源
    最近更新 更多