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

这将返回逻辑名称,但它只能作为 getter 访问。

4

2 回答 2

0

示例代码缺少很多功能。您似乎正在使用 SMO 来处理数据库。为什么不改用 TSQL?它可以使用 .NetInvoke-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 回答
0

您可以调用 rename 方法来重命名逻辑文件,然后调用 alter 方法。之后您需要使用 refresh 方法刷新您的 SMO 对象以查看更改。

于 2013-10-17T12:53:26.163 回答