1

フォルダーの場所に標準のバニラデータベースがありますMyDatabase.mdf, MyDatabases.ldf。私のPowerShellスクリプトは、これらのファイルをSQL Serverのデータフォルダーにコピーし、その過程で名前を変更していますMyProject.mdf, MyProject.ldf

次に、データベースをアタッチしますが、元のバニラ.mdfと両方の論理名が.ldf残ります。PowerShell でこれらを変更する方法がわかりません。復元でこれを行うことができますが、アタッチでどのように行うのか疑問に思っています。

$mdfFileName = "DataFolder\MyProject.mdf"
$ldfFileName = "DataFolder\MyProject.ldf"

$sc = New-Object System.Collections.Specialized.StringCollection
$sc.Add($mdfFileName)
$sc.Add($ldfFileName)

$server.AttachDatabase("MyProject", $sc)

テスト、試してみました

$db.LogFiles[0].Name

これは論理名を返しますが、ゲッターとしてのみアクセスできます。

4

2 に答える 2

0

サンプル コードには多くの機能がありません。SMO を使用してデータベースを操作しているようです。代わりに TSQL を使用しないのはなぜですか? Invoke-SqlCmdで、またはSystem.Data.SqlClient.Net のクラスを使用して実行できます。

CREATE DATABASE [MyProject] ON
(FILENAME = 'some\path\MyProject.mdf'), (FILENAME = 'some\path\MyProject.ldf')
FOR ATTACH;
于 2013-10-17T06:00:19.657 に答える