Server.DetachDatabase 메서드 (String, Boolean, Boolean)
Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.
네임스페이스: Microsoft.SqlServer.Management.Smo
어셈블리: Microsoft.SqlServer.Smo(Microsoft.SqlServer.Smo.dll)
구문
‘선언
Public Sub DetachDatabase ( _
databaseName As String, _
updateStatistics As Boolean, _
removeFulltextIndexFile As Boolean _
)
‘사용 방법
Dim instance As Server
Dim databaseName As String
Dim updateStatistics As Boolean
Dim removeFulltextIndexFile As Boolean
instance.DetachDatabase(databaseName, _
updateStatistics, removeFulltextIndexFile)
public void DetachDatabase(
string databaseName,
bool updateStatistics,
bool removeFulltextIndexFile
)
public:
void DetachDatabase(
String^ databaseName,
bool updateStatistics,
bool removeFulltextIndexFile
)
member DetachDatabase :
databaseName:string *
updateStatistics:bool *
removeFulltextIndexFile:bool -> unit
public function DetachDatabase(
databaseName : String,
updateStatistics : boolean,
removeFulltextIndexFile : boolean
)
매개 변수
- databaseName
유형: System.String
A String value that specifies the name of the database to be detached.
- updateStatistics
유형: System.Boolean
A Boolean value that specifies whether to update the statistics for the database before detaching it.If True, statistics are updated.If False, statistics are not updated.
- removeFulltextIndexFile
유형: System.Boolean
A Boolean value that specifies whether to remove a full-text index file before detaching the database.If True, the full-text index file is removed.If False, the full-text index file is not removed.
주의
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 = datastr + "\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)
참고 항목
참조
Microsoft.SqlServer.Management.Smo 네임스페이스