Metoda AttachDatabase (String, StringCollection, String)
Dołącza bazy danych, który składa się z jednego lub więcej plików do wystąpienie SQL Server z określoną nazwą i przy użyciu plików określonych danych.
Przestrzeń nazw: Microsoft.SqlServer.Management.Smo
Zestaw: Microsoft.SqlServer.Smo (w Microsoft.SqlServer.Smo.dll)
Syntax
'Deklaracja
Public Sub AttachDatabase ( _
name As String, _
files As StringCollection, _
owner As String _
)
'Użycie
Dim instance As Server
Dim name As String
Dim files As StringCollection
Dim owner As String
instance.AttachDatabase(name, files, owner)
public void AttachDatabase(
string name,
StringCollection files,
string owner
)
public:
void AttachDatabase(
String^ name,
StringCollection^ files,
String^ owner
)
member AttachDatabase :
name:string *
files:StringCollection *
owner:string -> unit
public function AttachDatabase(
name : String,
files : StringCollection,
owner : String
)
Parameters
- name
Typ: System. . :: . .String
A String wartość, która określa nazwę bazy danych należy załączyć.
- files
Typ: System.Collections.Specialized. . :: . .StringCollection
A StringCollection wartość obiektu zawierającego pliki bazy danych listy.
- owner
Typ: System. . :: . .String
A String wartość, która określa nowy właściciel bazy danych.
Uwagi
Pliki dziennika transakcji i danych bazy danych może być odłączone i następnie ponownie przymocowana do tej samej lub innej wystąpienie z SQL Server.Odłączania i dołączania bazy danych jest przydatna, jeśli chcesz zmienić bazę danych do innego wystąpienie SQL Server na tym samym komputerze lub jeśli chcesz przenieść bazy danych.
Określ właściciela bazy danych po jest dołączony za pomocą tego przeciążenia.
Przykłady
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("AdventureWorks2008R2").Owner
'Detach the AdventureWorks2008R2 database.
srv.DetachDatabase("AdventureWorks2008R2", 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\AdventureWorks2008R2_Data.mdf"
Logstr = "C:\Program Files\Microsoft SQL Server"
Logstr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_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("AdventureWorks2008R2", 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("AdventureWorks2008R2")
$owner = $db.Owner
$srv.DetachDatabase("AdventureWorks2008R2", $FALSE, $FALSE)
$datastr = "C:\Program Files\Microsoft SQL Server"
$datastr = $datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_Data.mdf"
$logstr = "C:\Program Files\Microsoft SQL Server"
$logstr = $logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_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("AdventureWorks2008R2", $sc, $owner, [Microsoft.SqlServer.Management.Smo.AttachOptions]::None)
Zobacz także