今回は SQL Server 2012 で、PowerShell からデータベースの作成をゴニョゴニョしようと思います。というか、すでにゴニョゴニョし終わってるので、その作業をメモとして残しておこうと思います。
(※項目ごとに ■ でまとめていますが、実際にデータベースを作成する際には上から順に実行していく流れになります。)
■ 前提
ゴニョる前に、なんにせよ、とりあえず sqlps モジュールを読み込んでおきます。
Import-Module "sqlps" -DisableNameChecking
■ ファイルグループ
$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName" $database = new-object Microsoft.SqlServer.Management.Smo.Database $sql, "DatabaseName" $filegroup = new-object Microsoft.SqlServer.Management.Smo.FileGroup $database, "PRIMARY" $database.FileGroups.Add($filegroup)
■ データベースファイル設定
初期サイズ100MB、自動拡張100MB単位でデータファイル作成
$dbfile = "DatabaseName_Data" $dbdfile = new-object Microsoft.SqlServer.Management.Smo.DataFile $filegroup, $dbfile $filegroup.Files.Add($dbdfile) $masterDBPath = $sql.Information.MasterDBPath $dbdfile.FileName = $masterDBPath + "\" + $dbfile + ".mdf" $dbdfile.Size = [double](100.0 * 1024.0) $dbdfile.GrowthType = "KB" $dbdfile.Growth = 100.0 * 1024.0
初期サイズ1MB、自動拡張1MB単位で1000MB制限のログファイル作成
$masterDBLogPath = $sql.Information.MasterDBLogPath $logfile = "DatabaseName_Log" $dblfile = new-object Microsoft.SqlServer.Management.Smo.LogFile $database, $logfile $database.LogFiles.Add($dblfile) $dblfile.FileName = $masterDBLogPath + "\" + $logfile + ".ldf" $dblfile.Size = [double](1.0 * 1024.0) $dblfile.GrowthType = "KB" $dblfile.Growth = 1.0 * 1024.0 $dblfile.MaxSize = [double](1000.0 * 1024.0)
■ 照合順序
$database.Collation = "Japanese_CI_AS"
■ 作成
$database.Create()
[参考]
PowerShell で SQL Server 2012 をなんやかんや.1
Microsoft.SqlServer.Management.Smo 名前空間
http://technet.microsoft.com/ja-jp/library/Microsoft.SqlServer.Management.Smo.aspx