共用方式為


Server.AttachDatabase 方法 (String, StringCollection)

Attaches an existing database that is made up of one or more files to the instance of SQL Server with the specified name and using the specified data files. 

命名空間:  Microsoft.SqlServer.Management.Smo
組件:  Microsoft.SqlServer.Smo (在 Microsoft.SqlServer.Smo.dll 中)

語法

'宣告
Public Sub AttachDatabase ( _
    name As String, _
    files As StringCollection _
)
'用途
Dim instance As Server 
Dim name As String 
Dim files As StringCollection

instance.AttachDatabase(name, files)
public void AttachDatabase(
    string name,
    StringCollection files
)
public:
void AttachDatabase(
    String^ name, 
    StringCollection^ files
)
member AttachDatabase : 
        name:string * 
        files:StringCollection -> unit
public function AttachDatabase(
    name : String, 
    files : StringCollection
)

參數

  • name
    型別:System.String
    A String value that specifies the name of the database to be attached.

備註

The data and transaction log files of a database can be detached and then reattached to the same or another instance of SQL Server. Detaching and attaching a database is useful if you want to change the database to a different instance of SQL Server on the same computer, or if you want to move the database.

範例

Visual Basic

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
Dim owner As String
Dim logstr as String
Dim datastr as String
owner = srv.Databases("AdventureWorks2012").Owner

'Detach the AdventureWorks2012 database.
srv.DetachDatabase("AdventureWorks2012", False, False)

'Display information about the detached database.
Dim d As DataTable
datastr = "C:\Program Files\Microsoft SQL Server"
datastr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"
logstr = "C:\Program Files\Microsoft SQL Server"
logstr = logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"
d = srv.DetachedDatabaseInfo(datastr)
Dim r As DataRow
Dim c As DataColumn
For Each r In d.Rows
    Console.WriteLine("==========================")
    For Each c In r.Table.Columns
        Console.WriteLine(c.ColumnName + " = " + r[c].ToString)
    Next
Next

'Check whether the file is a detached primary file.
Console.WriteLine(srv.IsDetachedPrimaryFile(datastr))

'Attach the database
Dim sc As StringCollection
sc = New StringCollection
sc.Add(datastr)
sc.Add(logstr)
srv.AttachDatabase("AdventureWorks2012", sc, owner, AttachOptions.None)

PowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("AdventureWorks2012")
$owner = $db.Owner
$srv.DetachDatabase("AdventureWorks2012", $FALSE, $FALSE)
$datastr = "C:\Program Files\Microsoft SQL Server"
$datastr = $datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"
$logstr = "C:\Program Files\Microsoft SQL Server"
$logstr = $logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"
$d = $srv.DetachedDatabaseInfo($datastr)
foreach ($r in $d.Rows)
{
   Write-Host "=========================="
   Foreach ($c in $d.Columns)
   {
      Write-Host $c.ColumnName "=" $r[$c].ToString()
   }
}
Write-Host $srv.IsDetachedPrimaryFile($datastr)
$sc = new-object Systems.Collections.Specialized.StringCollection
$sc.Add($datastr)
$sc.Add($logstr)
$srv.AttachDatabase("AdventureWorks2012", $sc, $owner, [Microsoft.SqlServer.Management.Smo.AttachOptions]::None)

請參閱

參考

Server 類別

AttachDatabase 多載

Microsoft.SqlServer.Management.Smo 命名空間

其他資源

呼叫方法

管理伺服器